FE-Project
Loading...
Searching...
No Matches
scale_multigrid_solver_2d Module Reference

module FElib / Multigrid / Solver 2D More...

Data Types

type  multigridsolver2d
 Derived type for multigrid solver in 2D domain. More...

Functions/Subroutines

subroutine multigridsolver2d_init (this, mesh_hierarchy, mg_smoother, aux_var_num, aux_vec_num)
 Initialize an object for multigrid solver in 2D domain.

Detailed Description

module FElib / Multigrid / Solver 2D

Description
Manage a multigrid solver for 2D domain
Author
Yuta Kawai, Team SCALE

Function/Subroutine Documentation

◆ multigridsolver2d_init()

subroutine 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 96 of file scale_multigrid_solver_2d.F90.

99
101 implicit none
102 class(MultiGridSolver2D), intent(inout) :: this
103 class(MeshHierarchy2D), intent(in), target :: mesh_hierarchy
104 class(MGSmootherBase2D), intent(in), target :: mg_smoother
105 integer, intent(in) :: aux_var_num
106 integer, intent(in) :: aux_vec_num
107
108 integer :: lev_p
109 integer :: lev_h
110 !-------------------------------------------------------------
111
112 call multigridsolverbase_init( this, mesh_hierarchy )
113
114 this%mesh_hierarchy_ptr => mesh_hierarchy
115 this%mg_smoother_ptr => mg_smoother
116
117 !- Prepare p-MG field sets
118 allocate( this%fields_p( mesh_hierarchy%NUM_pMG_LEVEL ) )
119 do lev_p=1, mesh_hierarchy%NUM_pMG_LEVEL
120 call this%fields_p(lev_p)%Init( mesh_hierarchy%p_mesh_list(lev_p)%ptr, &
121 aux_var_num, aux_vec_num, lev_p )
122 end do
123
124 !- Prepare h-MG field sets
125 allocate( this%fields_h( mesh_hierarchy%NUM_hMG_LEVEL ) )
126 do lev_h=1, mesh_hierarchy%NUM_hMG_LEVEL
127 call this%fields_h(lev_h)%Init( mesh_hierarchy%h_mesh_list(lev_h)%ptr, &
128 aux_var_num, aux_vec_num, lev_h )
129 end do
130 return
module FElib / Multigrid / Solver base
subroutine, public multigridsolverbase_init(this, mesh_hierarchy)
Initialize a base object for multigrid solver.

References scale_multigrid_smoother_base::mgsmoother_post_id, scale_multigrid_smoother_base::mgsmoother_pre_id, scale_multigrid_solver_base::multigridsolverbase_final(), and scale_multigrid_solver_base::multigridsolverbase_init().