|
FE-Project
|
Derived type for multigrid solver in 2D domain. More...
Public Member Functions | |
| procedure | init (this, mesh_hierarchy, mg_smoother, aux_var_num, aux_vec_num) |
| Initialize an object for multigrid solver in 2D domain. | |
| procedure | final (this) |
| Finalize an object for multigrid solver in 2D domain. | |
| procedure | solve (this, q, f) |
| Solve a linear system using multigrid method in 2D domain. | |
| procedure | do_vcycle (this, mg_level, f_in, vcyc_itr) |
| Do a V-cycle in 2D domain. | |
| procedure | do_hmg_vcycle (this, mg_level, f_in) |
| procedure | operate_pmg_restriction (this, res_c, res, p_lev) |
| procedure | operate_pmg_correction (this, dq, cor_c, p_lev) |
| procedure | operate_hmg_restriction (this, res_c, res, h_lev) |
| procedure | operate_hmg_correction (this, dq, cor_c, h_lev) |
| Public Member Functions inherited from scale_multigrid_solver_base::multigridsolverbase | |
| procedure | set_vcycle_parameter (this, vcyc_num_max, threshold_ratio_residual_l2, threshold_residual_l2, threshold_residual_max) |
| Set parameters for V-cycle. | |
| procedure | is_converged (this, smoother) |
| Check convergence of multigrid solver. | |
Public Attributes | |
| type(meshhierarchy2d), pointer | mesh_hierarchy_ptr |
| Pointer to an object to manage 2D mesh hierarchy. | |
| class(mgsmootherbase2d), pointer | mg_smoother_ptr |
| Pointer to an object to manage 2D MG smoother. | |
| type(mgfieldset2d), dimension(:), allocatable | fields_h |
| Array of objects to manage MG field sets for h-MG. | |
| type(mgfieldset2d), dimension(:), allocatable | fields_p |
| Array of objects to manage MG field sets for p-MG. | |
| Public Attributes inherited from scale_multigrid_solver_base::multigridsolverbase | |
| integer | current_p_lev |
| Current p-MG level. | |
| integer | current_h_lev |
| Current h-MG level. | |
| integer | vcyc_num_max |
| real(rp) | history_residual_l2_initial |
| Initial residual L2 norm. | |
| real(rp) | history_residual_max_initial |
| Initial residual max norm. | |
| real(rp) | threshold_ratio_residual_l2 |
| Threshold of decreasing ratio of residual for smoothing (L2 norm) | |
| real(rp) | threshold_residual_l2 |
| Residual threshold for smoothing (L2 norm) | |
| real(rp) | threshold_residual_max |
| Residual threshold for smoothing (max norm) | |
Derived type for multigrid solver in 2D domain.
Definition at line 60 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::init | ( | class(multigridsolver2d), intent(inout) | this, |
| class(meshhierarchy2d), intent(in), target | mesh_hierarchy, | ||
| class(mgsmootherbase2d), intent(in), target | mg_smoother, | ||
| integer, intent(in) | aux_var_num, | ||
| integer, intent(in) | aux_vec_num ) |
Initialize an object for multigrid solver in 2D domain.
Definition at line 67 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::final | ( | class(multigridsolver2d), intent(inout) | this | ) |
Finalize an object for multigrid solver in 2D domain.
Definition at line 68 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::solve | ( | class(multigridsolver2d), intent(inout) | this, |
| class(meshfield2d), intent(inout), target | q, | ||
| class(meshfield2d), intent(inout) | f ) |
Solve a linear system using multigrid method in 2D domain.
Definition at line 69 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::do_vcycle | ( | class(multigridsolver2d), intent(inout), target | this, |
| integer, intent(in) | mg_level, | ||
| type(meshfield2d), intent(inout) | f_in, | ||
| integer, intent(in) | vcyc_itr ) |
Do a V-cycle in 2D domain.
Definition at line 70 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::do_hmg_vcycle | ( | class(multigridsolver2d), intent(inout), target | this, |
| integer, intent(in) | mg_level, | ||
| type(meshfield2d), intent(inout) | f_in ) |
Definition at line 72 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::operate_pmg_restriction | ( | class(multigridsolver2d), intent(in), target | this, |
| class(meshfield2d), intent(inout) | res_c, | ||
| class(meshfield2d), intent(in) | res, | ||
| integer, intent(in) | p_lev ) |
Definition at line 73 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::operate_pmg_correction | ( | class(multigridsolver2d), intent(in), target | this, |
| class(meshfield2d), intent(inout) | dq, | ||
| class(meshfield2d), intent(in) | cor_c, | ||
| integer, intent(in) | p_lev ) |
Definition at line 74 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::operate_hmg_restriction | ( | class(multigridsolver2d), intent(in), target | this, |
| class(meshfield2d), intent(inout) | res_c, | ||
| class(meshfield2d), intent(in) | res, | ||
| integer, intent(in) | h_lev ) |
Definition at line 75 of file scale_multigrid_solver_2d.F90.
| procedure scale_multigrid_solver_2d::multigridsolver2d::operate_hmg_correction | ( | class(multigridsolver2d), intent(in), target | this, |
| class(meshfield2d), intent(inout) | dq, | ||
| class(meshfield2d), intent(in) | cor_c, | ||
| integer, intent(in) | h_lev ) |
Definition at line 76 of file scale_multigrid_solver_2d.F90.
| type(meshhierarchy2d), pointer scale_multigrid_solver_2d::multigridsolver2d::mesh_hierarchy_ptr |
Pointer to an object to manage 2D mesh hierarchy.
Definition at line 61 of file scale_multigrid_solver_2d.F90.
| class(mgsmootherbase2d), pointer scale_multigrid_solver_2d::multigridsolver2d::mg_smoother_ptr |
Pointer to an object to manage 2D MG smoother.
Definition at line 62 of file scale_multigrid_solver_2d.F90.
| type(mgfieldset2d), dimension(:), allocatable scale_multigrid_solver_2d::multigridsolver2d::fields_h |
Array of objects to manage MG field sets for h-MG.
Definition at line 64 of file scale_multigrid_solver_2d.F90.
| type(mgfieldset2d), dimension(:), allocatable scale_multigrid_solver_2d::multigridsolver2d::fields_p |
Array of objects to manage MG field sets for p-MG.
Definition at line 65 of file scale_multigrid_solver_2d.F90.