FE-Project
Loading...
Searching...
No Matches
scale_multigrid_solver_3d::multigridsolver3d Type Reference

Derived type for multigrid solver in 3D domain. More...

Inheritance diagram for scale_multigrid_solver_3d::multigridsolver3d:
scale_multigrid_solver_base::multigridsolverbase

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)

Detailed Description

Derived type for multigrid solver in 3D domain.

Definition at line 64 of file scale_multigrid_solver_3d.F90.

Member Function/Subroutine Documentation

◆ init()

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.

◆ final()

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.

◆ solve()

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.

◆ do_vcycle()

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.

◆ do_hmg_vcycle()

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.

◆ operate_pmg_restriction()

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.

◆ operate_pmg_correction()

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.

◆ operate_hmg_restriction()

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.

◆ operate_hmg_correction()

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.

Member Data Documentation

◆ mesh_hierarchy_ptr

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.

65 type(MeshHierarchy3D), pointer :: mesh_hierarchy_ptr !< Pointer to an object to manage 3D mesh hierarchy

◆ mg_smoother_ptr

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.

66 class(MGSmootherBase3D), pointer :: mg_smoother_ptr !< Pointer to an object to manage 3D MG smoother

◆ fields_h

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.

68 type(MGFieldSet3D), allocatable :: fields_h(:) !< Array of objects to manage MG field sets for h-MG

◆ fields_p

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.

69 type(MGFieldSet3D), allocatable :: fields_p(:) !< Array of objects to manage MG field sets for p-MG

The documentation for this type was generated from the following file: