Afivo  0.3
Public Attributes | List of all members
m_af_types::mg_t Type Reference

Type to store multigrid options in. More...

Collaboration diagram for m_af_types::mg_t:
Collaboration graph
[legend]

Public Attributes

integer i_phi = -1
 Variable holding solution. More...
 
integer i_rhs = -1
 Variable holding right-hand side. More...
 
integer i_tmp = -1
 Internal variable (holding prev. solution) More...
 
integer operator_mask = -1
 Mask to determine box types. More...
 
integer i_eps = -1
 Index of variable coefficient, automatically set. More...
 
integer i_lsf = -1
 Optional variable for level set function, automatically set. More...
 
integer n_cycle_down = 2
 Number of relaxation cycles in downward sweep. More...
 
integer n_cycle_up = 2
 Number of relaxation cycles in upward sweep. More...
 
logical initialized = .false.
 Whether the structure has been initialized. More...
 
logical use_corners = .false.
 Does the smoother use corner ghost cells. More...
 
logical subtract_mean = .false.
 Whether to subtract mean from solution. More...
 
real(dphelmholtz_lambda = 0.0_dp
 Store lambda^2 for Helmholtz equations (L phi - lamda phi = f) More...
 
real(dplsf_boundary_value = 0.0_dp
 Boundary value for level set function (if lsf_boundary_function is not set) More...
 
real(dplsf_gradient_safety_factor = 1.5_dp
 Safety factor for gradient of level set function. More...
 
real(dplsf_length_scale = 1e100_dp
 Minimal length scale to resolve (on coarser grids) More...
 
real(dplsf_tol = 1e-8_dp
 Tolerance for line search algorithm. More...
 
real(dplsf_min_rel_distance = 1e-4_dp
 Minimum relative distance to boundaries (to avoid division by zero) More...
 
logical lsf_use_custom_prolongation = .false.
 Whether to use a custom prolongation stencil. More...
 
procedure(mg_func_lsf), pointer, nopass lsf => null()
 Level-set function. More...
 
procedure(mg_lsf_distf), pointer, nopass lsf_dist => null()
 Routine to determine distance from level-set function. More...
 
procedure(mg_func_lsf), pointer, nopass lsf_boundary_function => null()
 Function to get boundary value for level set function. More...
 
procedure(af_subr_bc), pointer, nopass sides_bc => null()
 Routine to call for filling ghost cells near physical boundaries. More...
 
procedure(af_subr_rb), pointer, nopass sides_rb => null()
 Routine to call for filling ghost cells near refinement boundaries. More...
 
procedure(mg_box_op), pointer, nopass box_op => null()
 Subroutine that performs the (non)linear operator. More...
 
integer operator_type = mg_auto_operator
 What kind of operator to use. More...
 
integer operator_key = af_stencil_none
 Key indicating which stencil is to be used for the operator. More...
 
integer prolongation_type = mg_prolong_auto
 What kind of prolongation operator to use. More...
 
integer prolongation_key = af_stencil_none
 Key indicating which stencil is to be used for the operator. More...
 
procedure(mg_box_gsrb), pointer, nopass box_gsrb => null()
 Subroutine that performs Gauss-Seidel relaxation on a box. More...
 
procedure(mg_box_corr), pointer, nopass box_corr => null()
 Subroutine that corrects the children of a box. More...
 
procedure(mg_box_rstr), pointer, nopass box_rstr => null()
 Subroutine for restriction. More...
 
procedure(mg_box_stencil), pointer, nopass box_stencil => null()
 Subroutine for getting the stencil. More...
 
type(coarse_solve_tcsolver
 Structure holding data for the coarse grid solver. More...
 

Detailed Description

Type to store multigrid options in.

Definition at line 572 of file m_af_types.f90.

Member Data Documentation

◆ i_phi

integer m_af_types::mg_t::i_phi = -1

Variable holding solution.

Definition at line 574 of file m_af_types.f90.

◆ i_rhs

integer m_af_types::mg_t::i_rhs = -1

Variable holding right-hand side.

Definition at line 576 of file m_af_types.f90.

◆ i_tmp

integer m_af_types::mg_t::i_tmp = -1

Internal variable (holding prev. solution)

Definition at line 578 of file m_af_types.f90.

◆ operator_mask

integer m_af_types::mg_t::operator_mask = -1

Mask to determine box types.

Definition at line 581 of file m_af_types.f90.

◆ i_eps

integer m_af_types::mg_t::i_eps = -1

Index of variable coefficient, automatically set.

Definition at line 583 of file m_af_types.f90.

◆ i_lsf

integer m_af_types::mg_t::i_lsf = -1

Optional variable for level set function, automatically set.

Definition at line 585 of file m_af_types.f90.

◆ n_cycle_down

integer m_af_types::mg_t::n_cycle_down = 2

Number of relaxation cycles in downward sweep.

Definition at line 588 of file m_af_types.f90.

◆ n_cycle_up

integer m_af_types::mg_t::n_cycle_up = 2

Number of relaxation cycles in upward sweep.

Definition at line 590 of file m_af_types.f90.

◆ initialized

logical m_af_types::mg_t::initialized = .false.

Whether the structure has been initialized.

Definition at line 593 of file m_af_types.f90.

◆ use_corners

logical m_af_types::mg_t::use_corners = .false.

Does the smoother use corner ghost cells.

Definition at line 595 of file m_af_types.f90.

◆ subtract_mean

logical m_af_types::mg_t::subtract_mean = .false.

Whether to subtract mean from solution.

Definition at line 597 of file m_af_types.f90.

◆ helmholtz_lambda

real(dp) m_af_types::mg_t::helmholtz_lambda = 0.0_dp

Store lambda^2 for Helmholtz equations (L phi - lamda phi = f)

Definition at line 600 of file m_af_types.f90.

◆ lsf_boundary_value

real(dp) m_af_types::mg_t::lsf_boundary_value = 0.0_dp

Boundary value for level set function (if lsf_boundary_function is not set)

Definition at line 604 of file m_af_types.f90.

◆ lsf_gradient_safety_factor

real(dp) m_af_types::mg_t::lsf_gradient_safety_factor = 1.5_dp

Safety factor for gradient of level set function.

Definition at line 607 of file m_af_types.f90.

◆ lsf_length_scale

real(dp) m_af_types::mg_t::lsf_length_scale = 1e100_dp

Minimal length scale to resolve (on coarser grids)

Definition at line 610 of file m_af_types.f90.

◆ lsf_tol

real(dp) m_af_types::mg_t::lsf_tol = 1e-8_dp

Tolerance for line search algorithm.

Definition at line 613 of file m_af_types.f90.

◆ lsf_min_rel_distance

real(dp) m_af_types::mg_t::lsf_min_rel_distance = 1e-4_dp

Minimum relative distance to boundaries (to avoid division by zero)

Definition at line 616 of file m_af_types.f90.

◆ lsf_use_custom_prolongation

logical m_af_types::mg_t::lsf_use_custom_prolongation = .false.

Whether to use a custom prolongation stencil.

Definition at line 619 of file m_af_types.f90.

◆ lsf

procedure(mg_func_lsf), pointer, nopass m_af_types::mg_t::lsf => null()

Level-set function.

Definition at line 622 of file m_af_types.f90.

◆ lsf_dist

procedure(mg_lsf_distf), pointer, nopass m_af_types::mg_t::lsf_dist => null()

Routine to determine distance from level-set function.

Definition at line 625 of file m_af_types.f90.

◆ lsf_boundary_function

procedure(mg_func_lsf), pointer, nopass m_af_types::mg_t::lsf_boundary_function => null()

Function to get boundary value for level set function.

Definition at line 628 of file m_af_types.f90.

◆ sides_bc

procedure(af_subr_bc), pointer, nopass m_af_types::mg_t::sides_bc => null()

Routine to call for filling ghost cells near physical boundaries.

Definition at line 631 of file m_af_types.f90.

◆ sides_rb

procedure(af_subr_rb), pointer, nopass m_af_types::mg_t::sides_rb => null()

Routine to call for filling ghost cells near refinement boundaries.

Definition at line 634 of file m_af_types.f90.

◆ box_op

procedure(mg_box_op), pointer, nopass m_af_types::mg_t::box_op => null()

Subroutine that performs the (non)linear operator.

Definition at line 637 of file m_af_types.f90.

◆ operator_type

integer m_af_types::mg_t::operator_type = mg_auto_operator

What kind of operator to use.

Definition at line 640 of file m_af_types.f90.

◆ operator_key

integer m_af_types::mg_t::operator_key = af_stencil_none

Key indicating which stencil is to be used for the operator.

Definition at line 643 of file m_af_types.f90.

◆ prolongation_type

integer m_af_types::mg_t::prolongation_type = mg_prolong_auto

What kind of prolongation operator to use.

Definition at line 646 of file m_af_types.f90.

◆ prolongation_key

integer m_af_types::mg_t::prolongation_key = af_stencil_none

Key indicating which stencil is to be used for the operator.

Definition at line 649 of file m_af_types.f90.

◆ box_gsrb

procedure(mg_box_gsrb), pointer, nopass m_af_types::mg_t::box_gsrb => null()

Subroutine that performs Gauss-Seidel relaxation on a box.

Definition at line 652 of file m_af_types.f90.

◆ box_corr

procedure(mg_box_corr), pointer, nopass m_af_types::mg_t::box_corr => null()

Subroutine that corrects the children of a box.

Definition at line 655 of file m_af_types.f90.

◆ box_rstr

procedure(mg_box_rstr), pointer, nopass m_af_types::mg_t::box_rstr => null()

Subroutine for restriction.

Definition at line 658 of file m_af_types.f90.

◆ box_stencil

procedure(mg_box_stencil), pointer, nopass m_af_types::mg_t::box_stencil => null()

Subroutine for getting the stencil.

Definition at line 661 of file m_af_types.f90.

◆ csolver

type(coarse_solve_t) m_af_types::mg_t::csolver

Structure holding data for the coarse grid solver.

Definition at line 664 of file m_af_types.f90.