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

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

Data Types

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

Functions/Subroutines

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

Detailed Description

module FElib / Multigrid / Solver 3D

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

Function/Subroutine Documentation

◆ multigridsolver3d_init()

subroutine 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 100 of file scale_multigrid_solver_3d.F90.

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

References scale_mesh_base3d::meshbase3d_dimtypeid_xyz, 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().