Afivo  0.3
Data Types | Functions/Subroutines
m_a2_ghostcell Module Reference

This module contains routines related to the filling of ghost cells. Note that corner ghost cells are not used in Afivo. More...

Functions/Subroutines

subroutine, public a2_gc_prolong_copy (boxes, id, nb, iv)
 Partial prolongation to the ghost cells of box id from parent. More...
 
subroutine, public a2_gc_interp (boxes, id, nb, iv)
 Interpolate between fine points and coarse neighbors to fill ghost cells near refinement boundaries. More...
 
subroutine, public a2_gc_interp_lim (boxes, id, nb, iv)
 Interpolate between fine points and coarse neighbors to fill ghost cells near refinement boundaries. The ghost values are less than twice the coarse values. More...
 
subroutine, public a2_bc_neumann_zero (box, nb, iv, bc_type)
 
subroutine, public a2_bc_dirichlet_zero (box, nb, iv, bc_type)
 
subroutine, public a2_bc_continuous (box, nb, iv, bc_type)
 
subroutine, public a2_gc2_box (boxes, id, iv, subr_rb, subr_bc, cc, nc)
 Get a second layer of ghost cell data (the 'normal' routines give just one layer of ghost cells). Use subr_rb on refinement boundaries and subr_bc on physical boundaries. More...
 
subroutine, public a2_gc2_prolong_linear (boxes, id, nb, iv, gc_side, nc)
 Linear interpolation (using data from neighbor) to fill ghost cells. More...
 
subroutine, public a2_bc2_neumann_zero (boxes, id, nb, iv, gc_side, nc)
 
subroutine, public a2_bc2_dirichlet_zero (boxes, id, nb, iv, gc_side, nc)
 

Detailed Description

This module contains routines related to the filling of ghost cells. Note that corner ghost cells are not used in Afivo.

Function/Subroutine Documentation

§ a2_gc_prolong_copy()

subroutine, public m_a2_ghostcell::a2_gc_prolong_copy ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv 
)

Partial prolongation to the ghost cells of box id from parent.

Parameters
[in,out]boxesList of all boxes
[in]idId of child
[in]ivVariable to fill
[in]nbNeighbor to get data from

Definition at line 366 of file m_a2_ghostcell.f90.

§ a2_gc_interp()

subroutine, public m_a2_ghostcell::a2_gc_interp ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv 
)

Interpolate between fine points and coarse neighbors to fill ghost cells near refinement boundaries.

Parameters
[in,out]boxesList of all boxes
[in]idId of box
[in]nbGhost cell direction
[in]ivGhost cell variable

Definition at line 386 of file m_a2_ghostcell.f90.

§ a2_gc_interp_lim()

subroutine, public m_a2_ghostcell::a2_gc_interp_lim ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv 
)

Interpolate between fine points and coarse neighbors to fill ghost cells near refinement boundaries. The ghost values are less than twice the coarse values.

Parameters
[in,out]boxesList of all boxes
[in]idId of box
[in]nbGhost cell direction
[in]ivGhost cell variable

Definition at line 437 of file m_a2_ghostcell.f90.

§ a2_bc_neumann_zero()

subroutine, public m_a2_ghostcell::a2_bc_neumann_zero ( type(box2_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 489 of file m_a2_ghostcell.f90.

§ a2_bc_dirichlet_zero()

subroutine, public m_a2_ghostcell::a2_bc_dirichlet_zero ( type(box2_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 499 of file m_a2_ghostcell.f90.

§ a2_bc_continuous()

subroutine, public m_a2_ghostcell::a2_bc_continuous ( type(box2_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 509 of file m_a2_ghostcell.f90.

§ a2_gc2_box()

subroutine, public m_a2_ghostcell::a2_gc2_box ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  iv,
procedure(a2_subr_egc subr_rb,
procedure(a2_subr_egc subr_bc,
real(dp), dimension(-1:nc+2, -1:nc+2), intent(out)  cc,
integer, intent(in)  nc 
)

Get a second layer of ghost cell data (the 'normal' routines give just one layer of ghost cells). Use subr_rb on refinement boundaries and subr_bc on physical boundaries.

Parameters
[in,out]boxesList of all the boxes
[in]idId of box for which we set ghost cells
[in]ivVariable for which ghost cells are set
subr_rbProcedure called at refinement boundaries
subr_bcProcedure called at physical boundaries
[in]ncboxn_cell
[out]ccThe data with extra ghost cells

Definition at line 539 of file m_a2_ghostcell.f90.

§ a2_gc2_prolong_linear()

subroutine, public m_a2_ghostcell::a2_gc2_prolong_linear ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc), intent(out)  gc_side,
integer, intent(in)  nc 
)

Linear interpolation (using data from neighbor) to fill ghost cells.

Parameters
[in,out]boxesList of all boxes
[in]idId of box
[in]nbGhost cell direction
[in]ivGhost cell variable
[in]ncBox n_cell
[out]gc_sideGhost cells on side

Definition at line 596 of file m_a2_ghostcell.f90.

§ a2_bc2_neumann_zero()

subroutine, public m_a2_ghostcell::a2_bc2_neumann_zero ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc), intent(out)  gc_side,
integer, intent(in)  nc 
)
Parameters
[in,out]boxesList of all boxes
[in]idId of box
[in]nbGhost cell direction
[in]ivGhost cell variable
[in]ncBox n_cell
[out]gc_sideGhost cells on side

Definition at line 640 of file m_a2_ghostcell.f90.

§ a2_bc2_dirichlet_zero()

subroutine, public m_a2_ghostcell::a2_bc2_dirichlet_zero ( type(box2_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc), intent(out)  gc_side,
integer, intent(in)  nc 
)

Definition at line 661 of file m_a2_ghostcell.f90.