|
FE-Project
|
Derived type for multigrid solver in 3D 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 3D domain. | |
| procedure | final (this) |
| Finalize an object for multigrid solver in 3D domain. | |
| procedure | solve (this, q, f) |
| Solve a linear system using multigrid method in 3D domain. | |
| procedure | do_vcycle (this, mg_level, f_in, vcyc_itr) |
| Do a V-cycle in 3D 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(meshhierarchy3d), pointer | mesh_hierarchy_ptr |
| Pointer to an object to manage 3D mesh hierarchy. | |
| class(mgsmootherbase3d), pointer | mg_smoother_ptr |
| Pointer to an object to manage 3D MG smoother. | |
| type(mgfieldset3d), dimension(:), allocatable | fields_h |
| Array of objects to manage MG field sets for h-MG. | |
| type(mgfieldset3d), 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 3D domain.
Definition at line 64 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::init | ( | class(multigridsolver3d), intent(inout) | this, |
| class(meshhierarchy3d), intent(in), target | mesh_hierarchy, | ||
| class(mgsmootherbase3d), intent(in), target | mg_smoother, | ||
| integer, intent(in) | aux_var_num, | ||
| integer, intent(in) | aux_vec_num ) |
Initialize an object for multigrid solver in 3D domain.
Definition at line 71 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::final | ( | class(multigridsolver3d), intent(inout) | this | ) |
Finalize an object for multigrid solver in 3D domain.
Definition at line 72 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::solve | ( | class(multigridsolver3d), intent(inout) | this, |
| class(meshfield3d), intent(inout), target | q, | ||
| class(meshfield3d), intent(inout) | f ) |
Solve a linear system using multigrid method in 3D domain.
Definition at line 73 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::do_vcycle | ( | class(multigridsolver3d), intent(inout), target | this, |
| integer, intent(in) | mg_level, | ||
| type(meshfield3d), intent(inout) | f_in, | ||
| integer, intent(in) | vcyc_itr ) |
Do a V-cycle in 3D domain.
Definition at line 74 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::do_hmg_vcycle | ( | class(multigridsolver3d), intent(inout), target | this, |
| integer, intent(in) | mg_level, | ||
| type(meshfield3d), intent(inout) | f_in ) |
Definition at line 76 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::operate_pmg_restriction | ( | class(multigridsolver3d), intent(in), target | this, |
| class(meshfield3d), intent(inout) | res_c, | ||
| class(meshfield3d), intent(in) | res, | ||
| integer, intent(in) | p_lev ) |
Definition at line 77 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::operate_pmg_correction | ( | class(multigridsolver3d), intent(in), target | this, |
| class(meshfield3d), intent(inout) | dq, | ||
| class(meshfield3d), intent(in) | cor_c, | ||
| integer, intent(in) | p_lev ) |
Definition at line 78 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::operate_hmg_restriction | ( | class(multigridsolver3d), intent(in), target | this, |
| class(meshfield3d), intent(inout) | res_c, | ||
| class(meshfield3d), intent(in) | res, | ||
| integer, intent(in) | h_lev ) |
Definition at line 79 of file scale_multigrid_solver_3d.F90.
| procedure scale_multigrid_solver_3d::multigridsolver3d::operate_hmg_correction | ( | class(multigridsolver3d), intent(in), target | this, |
| class(meshfield3d), intent(inout) | dq, | ||
| class(meshfield3d), intent(in) | cor_c, | ||
| integer, intent(in) | h_lev ) |
Definition at line 80 of file scale_multigrid_solver_3d.F90.
| type(meshhierarchy3d), pointer scale_multigrid_solver_3d::multigridsolver3d::mesh_hierarchy_ptr |
Pointer to an object to manage 3D mesh hierarchy.
Definition at line 65 of file scale_multigrid_solver_3d.F90.
| class(mgsmootherbase3d), pointer scale_multigrid_solver_3d::multigridsolver3d::mg_smoother_ptr |
Pointer to an object to manage 3D MG smoother.
Definition at line 66 of file scale_multigrid_solver_3d.F90.
| type(mgfieldset3d), dimension(:), allocatable scale_multigrid_solver_3d::multigridsolver3d::fields_h |
Array of objects to manage MG field sets for h-MG.
Definition at line 68 of file scale_multigrid_solver_3d.F90.
| type(mgfieldset3d), dimension(:), allocatable scale_multigrid_solver_3d::multigridsolver3d::fields_p |
Array of objects to manage MG field sets for p-MG.
Definition at line 69 of file scale_multigrid_solver_3d.F90.