![]() |
PRISMS-PF Manual
|
Class that manages solution initialization and swapping with old solutions. More...
#include <group_solution_handler.h>
Public Types | |
| using | SolutionTransfer = dealii::parallel::distributed::SolutionTransfer< dim, SolutionVector< number > > |
Public Member Functions | |
| GroupSolutionHandler (SolveGroup _solve_group, const std::vector< FieldAttributes > &_attributes_list) | |
| Constructor. | |
| BlockVector< number > & | get_solution_full_vector (unsigned int relative_level=0) |
| Get the solution vector set. This contains all the normal fields and is typically used for output. | |
| const BlockVector< number > & | get_solution_full_vector (unsigned int relative_level=0) const |
| Get the const solution vector set. This contains all the normal fields and is typically used for output. | |
| SolutionVector< number > & | get_solution_vector (unsigned int global_index, unsigned int relative_level=0) |
| Get a solution vector of a given field index. | |
| const SolutionVector< number > & | get_solution_vector (unsigned int global_index, unsigned int relative_level=0) const |
| Get a solution vector of a given field index. | |
| BlockVector< number > & | get_old_solution_full_vector (unsigned int age, unsigned int relative_level=0) |
| Get the old solution vector set at a given age. | |
| const BlockVector< number > & | get_old_solution_full_vector (unsigned int age, unsigned int relative_level=0) const |
| Get the old solution vector set at a given age. | |
| SolutionVector< number > & | get_old_solution_vector (unsigned int age, unsigned int global_index, unsigned int relative_level=0) |
| Get a solution vector of a given field index at a given age. | |
| const SolutionVector< number > & | get_old_solution_vector (unsigned int age, unsigned int global_index, unsigned int relative_level=0) const |
| Get a solution vector of a given field index at a given age. | |
| SolutionLevel< dim, number > & | get_solution_level (unsigned int relative_level=0) |
| Get the solutions object at a level. | |
| const SolutionLevel< dim, number > & | get_solution_level (unsigned int relative_level=0) const |
| Get the solutions object at a level. | |
| MatrixFree< dim, number > & | get_matrix_free (unsigned int relative_level=0) |
| Get the matrix_free object at a level. | |
| const MatrixFree< dim, number > & | get_matrix_free (unsigned int relative_level=0) const |
| Get the matrix_free object at a level. | |
| unsigned int | get_block_index (unsigned int global_index) const |
| Get the block index from the global index. | |
| const SolveGroup & | get_solve_group () const |
| Get the underlying solve group object. | |
| const std::vector< unsigned int > & | get_global_to_block_index () const |
| Get the block index from the global index. | |
| const std::vector< unsigned int > & | get_block_to_global_index () const |
| Get the global index from the block index. | |
| template<unsigned int degree> | |
| void | init (const DoFManager< dim, degree > &dof_manager, const ConstraintManager< dim, degree, number > &constraint_manager, unsigned int num_old_saved) |
| Initialize the solution set. | |
| template<unsigned int degree> | |
| void | reinit (const DoFManager< dim, degree > &dof_manager, const ConstraintManager< dim, degree, number > &constraint_manager) |
| Reinitialize the solution set. | |
| void | update_ghosts (unsigned int relative_level=0) const |
| Update the ghost values. | |
| void | zero_out_ghosts (unsigned int relative_level=0) const |
| Zero out the ghost values. | |
| void | apply_constraints (unsigned int relative_level=0) |
| Apply the given constraints to a solution vector of a given field index. | |
| void | apply_constraints_to_all (unsigned int relative_level) |
| Apply the given constraints to all the solution vectors, including old. | |
| void | apply_initial_condition_for_old_fields () |
| Apply initial condition to the old fields. For now, this simply copies the values in the normal field to the old. | |
| void | update (unsigned int relative_level=0) |
| Update and propagate the old solutions. | |
| void | init_solution_transfer () |
| Reinit the solution transfer objections. | |
| void | prepare_for_solution_transfer () |
| Prepare for solution transfer. | |
| void | execute_solution_transfer () |
| Transfer solutions. | |
Private Attributes | |
| SolveGroup | solve_group |
| Information about the solve group this handler is responsible for. | |
| std::vector< unsigned int > | block_to_global_index |
| Mapping from block index to global field index. | |
| std::vector< unsigned int > | global_to_block_index |
| Mapping from global field index to block index. | |
| std::vector< SolutionLevel< dim, number > > | solution_levels |
| Solutions and matrix free of each level. | |
| std::vector< SolutionTransfer > | block_solution_transfer |
| Utility for solution transfer to different mesh (for AMR). Can only work on one block at a time. | |
Class that manages solution initialization and swapping with old solutions.
| using GroupSolutionHandler< dim, number >::SolutionTransfer = dealii::parallel::distributed::SolutionTransfer<dim, SolutionVector<number> > |
| PRISMS_PF_BEGIN_NAMESPACE GroupSolutionHandler< dim, number >::GroupSolutionHandler | ( | SolveGroup | _solve_group, |
| const std::vector< FieldAttributes > & | _attributes_list | ||
| ) |
Constructor.
Apply the given constraints to a solution vector of a given field index.
Apply the given constraints to all the solution vectors, including old.
| void GroupSolutionHandler< dim, number >::apply_initial_condition_for_old_fields | ( | ) |
Apply initial condition to the old fields. For now, this simply copies the values in the normal field to the old.
| void GroupSolutionHandler< dim, number >::execute_solution_transfer | ( | ) |
Transfer solutions.
| unsigned int GroupSolutionHandler< dim, number >::get_block_index | ( | unsigned int | global_index | ) | const |
Get the block index from the global index.
| const std::vector< unsigned int > & GroupSolutionHandler< dim, number >::get_block_to_global_index | ( | ) | const |
Get the global index from the block index.
| const std::vector< unsigned int > & GroupSolutionHandler< dim, number >::get_global_to_block_index | ( | ) | const |
Get the block index from the global index.
Get the matrix_free object at a level.
Get the matrix_free object at a level.
| auto GroupSolutionHandler< dim, number >::get_old_solution_full_vector | ( | unsigned int | age, |
| unsigned int | relative_level = 0 |
||
| ) |
Get the old solution vector set at a given age.
| auto GroupSolutionHandler< dim, number >::get_old_solution_full_vector | ( | unsigned int | age, |
| unsigned int | relative_level = 0 |
||
| ) | const |
Get the old solution vector set at a given age.
| auto GroupSolutionHandler< dim, number >::get_old_solution_vector | ( | unsigned int | age, |
| unsigned int | global_index, | ||
| unsigned int | relative_level = 0 |
||
| ) |
Get a solution vector of a given field index at a given age.
| auto GroupSolutionHandler< dim, number >::get_old_solution_vector | ( | unsigned int | age, |
| unsigned int | global_index, | ||
| unsigned int | relative_level = 0 |
||
| ) | const |
Get a solution vector of a given field index at a given age.
| auto GroupSolutionHandler< dim, number >::get_solution_full_vector | ( | unsigned int | relative_level = 0 | ) |
Get the solution vector set. This contains all the normal fields and is typically used for output.
| auto GroupSolutionHandler< dim, number >::get_solution_full_vector | ( | unsigned int | relative_level = 0 | ) | const |
Get the const solution vector set. This contains all the normal fields and is typically used for output.
| SolutionLevel< dim, number > & GroupSolutionHandler< dim, number >::get_solution_level | ( | unsigned int | relative_level = 0 | ) |
Get the solutions object at a level.
| const SolutionLevel< dim, number > & GroupSolutionHandler< dim, number >::get_solution_level | ( | unsigned int | relative_level = 0 | ) | const |
Get the solutions object at a level.
| auto GroupSolutionHandler< dim, number >::get_solution_vector | ( | unsigned int | global_index, |
| unsigned int | relative_level = 0 |
||
| ) |
Get a solution vector of a given field index.
| auto GroupSolutionHandler< dim, number >::get_solution_vector | ( | unsigned int | global_index, |
| unsigned int | relative_level = 0 |
||
| ) | const |
Get a solution vector of a given field index.
| auto GroupSolutionHandler< dim, number >::get_solve_group | ( | ) | const |
Get the underlying solve group object.
| void GroupSolutionHandler< dim, number >::init | ( | const DoFManager< dim, degree > & | dof_manager, |
| const ConstraintManager< dim, degree, number > & | constraint_manager, | ||
| unsigned int | num_old_saved | ||
| ) |
Initialize the solution set.
| void GroupSolutionHandler< dim, number >::init_solution_transfer | ( | ) |
Reinit the solution transfer objections.
| void GroupSolutionHandler< dim, number >::prepare_for_solution_transfer | ( | ) |
Prepare for solution transfer.
| void GroupSolutionHandler< dim, number >::reinit | ( | const DoFManager< dim, degree > & | dof_manager, |
| const ConstraintManager< dim, degree, number > & | constraint_manager | ||
| ) |
Reinitialize the solution set.
Update and propagate the old solutions.
Update the ghost values.
Zero out the ghost values.
|
private |
Utility for solution transfer to different mesh (for AMR). Can only work on one block at a time.
|
private |
Mapping from block index to global field index.
|
private |
Mapping from global field index to block index.
|
private |
Solutions and matrix free of each level.
|
private |
Information about the solve group this handler is responsible for.