![]() |
PRISMS-PF Manual v3.0-pre
|
Class that handles the assembly and solving of a field with a GMG preconditioner. More...
#include <linear_solver_gmg.h>
Public Types | |
using | SystemMatrixType = customPDE< dim, degree, double > |
using | LevelMatrixType = customPDE< dim, degree, float > |
using | VectorType = dealii::LinearAlgebra::distributed::Vector< double > |
using | MGVectorType = dealii::LinearAlgebra::distributed::Vector< float > |
![]() | |
using | SystemMatrixType = customPDE< dim, degree, double > |
using | VectorType = dealii::LinearAlgebra::distributed::Vector< double > |
Public Member Functions | |
GMGSolver (const userInputParameters< dim > &_user_inputs, const variableAttributes &_variable_attributes, const matrixfreeHandler< dim > &_matrix_free_handler, const constraintHandler< dim > &_constraint_handler, const triangulationHandler< dim > &_triangulation_handler, const dofHandler< dim > &_dof_handler, dealii::MGLevelObject< matrixfreeHandler< dim, float > > &_mg_matrix_free_handler, solutionHandler< dim > &_solution_handler) | |
Constructor. | |
~GMGSolver () override | |
Destructor. | |
void | init () override |
Initialize the system. | |
void | reinit () override |
Reinitialize the system. | |
void | solve (const double step_length=1.0) override |
Solve the system Ax=b. | |
![]() | |
linearSolverBase (const userInputParameters< dim > &_user_inputs, const variableAttributes &_variable_attributes, const matrixfreeHandler< dim > &_matrix_free_handler, const constraintHandler< dim > &_constraint_handler, solutionHandler< dim > &_solution_handler) | |
Constructor. | |
virtual | ~linearSolverBase ()=default |
Destructor. | |
Additional Inherited Members | |
![]() | |
void | compute_solver_tolerance () |
Compute the solver tolerance based on the specified tolerance type. | |
![]() | |
const userInputParameters< dim > & | user_inputs |
User-inputs. | |
const variableAttributes & | variable_attributes |
Variable attributes for field. | |
const matrixfreeHandler< dim > & | matrix_free_handler |
Matrix-free object handler for non-multigrid data. | |
const constraintHandler< dim > & | constraint_handler |
Constraint handler. | |
solutionHandler< dim > & | solution_handler |
Solution handler. | |
const unsigned int | field_index |
The field index we are solving. | |
std::unordered_map< std::pair< unsigned int, dependencyType >, unsigned int, pairHash > | residual_global_to_local_solution |
Mapping from global solution vectors to the local ones for the residual solve. | |
std::vector< VectorType * > | residual_src |
Subset of fields that are necessary for the source of the residual solve. | |
VectorType * | residual |
Residual vector. | |
std::unordered_map< std::pair< unsigned int, dependencyType >, unsigned int, pairHash > | newton_update_global_to_local_solution |
Mapping from global solution vectors to the local ones for the newton update. | |
std::vector< VectorType * > | newton_update_src |
Subset of fields that are necessary for the source of the newton update. | |
VectorType * | newton_update |
Newton update vector. | |
std::unique_ptr< SystemMatrixType > | system_matrix |
PDE operator for the residual side. | |
std::unique_ptr< SystemMatrixType > | update_system_matrix |
PDE operator for the newton update side. | |
std::map< unsigned int, variableAttributes > | subset_attributes |
Subset attributes. | |
dealii::SolverControl | solver_control |
Solver control. | |
double | tolerance = 0.0 |
Solver tolerance. | |
Class that handles the assembly and solving of a field with a GMG preconditioner.
|
inlineoverridevirtual |
Initialize the system.
Implements linearSolverBase< dim, degree >.
|
inlineoverridevirtual |
Reinitialize the system.
Implements linearSolverBase< dim, degree >.
|
inlineoverridevirtual |
Solve the system Ax=b.
Implements linearSolverBase< dim, degree >.