Afivo  0.3
Data Types | Functions/Subroutines
m_a3_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 a3_gc_prolong_copy (boxes, id, nb, iv)
 Partial prolongation to the ghost cells of box id from parent. More...
 
subroutine, public a3_gc_interp (boxes, id, nb, iv)
 Interpolate between fine points and coarse neighbors to fill ghost cells near refinement boundaries. More...
 
subroutine, public a3_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 a3_bc_neumann_zero (box, nb, iv, bc_type)
 
subroutine, public a3_bc_dirichlet_zero (box, nb, iv, bc_type)
 
subroutine, public a3_bc_continuous (box, nb, iv, bc_type)
 
subroutine, public a3_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 a3_gc2_prolong_linear (boxes, id, nb, iv, gc_side, nc)
 Linear interpolation (using data from neighbor) to fill ghost cells. More...
 
subroutine, public a3_bc2_neumann_zero (boxes, id, nb, iv, gc_side, nc)
 
subroutine, public a3_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

§ a3_gc_prolong_copy()

subroutine, public m_a3_ghostcell::a3_gc_prolong_copy ( type(box3_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 398 of file m_a3_ghostcell.f90.

§ a3_gc_interp()

subroutine, public m_a3_ghostcell::a3_gc_interp ( type(box3_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 418 of file m_a3_ghostcell.f90.

§ a3_gc_interp_lim()

subroutine, public m_a3_ghostcell::a3_gc_interp_lim ( type(box3_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 494 of file m_a3_ghostcell.f90.

§ a3_bc_neumann_zero()

subroutine, public m_a3_ghostcell::a3_bc_neumann_zero ( type(box3_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 576 of file m_a3_ghostcell.f90.

§ a3_bc_dirichlet_zero()

subroutine, public m_a3_ghostcell::a3_bc_dirichlet_zero ( type(box3_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 586 of file m_a3_ghostcell.f90.

§ a3_bc_continuous()

subroutine, public m_a3_ghostcell::a3_bc_continuous ( type(box3_t), intent(inout)  box,
integer, intent(in)  nb,
integer, intent(in)  iv,
integer, intent(out)  bc_type 
)

Definition at line 596 of file m_a3_ghostcell.f90.

§ a3_gc2_box()

subroutine, public m_a3_ghostcell::a3_gc2_box ( type(box3_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  iv,
procedure(a3_subr_egc subr_rb,
procedure(a3_subr_egc subr_bc,
real(dp), dimension(-1:nc+2, -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 626 of file m_a3_ghostcell.f90.

§ a3_gc2_prolong_linear()

subroutine, public m_a3_ghostcell::a3_gc2_prolong_linear ( type(box3_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc, 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 687 of file m_a3_ghostcell.f90.

§ a3_bc2_neumann_zero()

subroutine, public m_a3_ghostcell::a3_bc2_neumann_zero ( type(box3_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc, 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 758 of file m_a3_ghostcell.f90.

§ a3_bc2_dirichlet_zero()

subroutine, public m_a3_ghostcell::a3_bc2_dirichlet_zero ( type(box3_t), dimension(:), intent(inout)  boxes,
integer, intent(in)  id,
integer, intent(in)  nb,
integer, intent(in)  iv,
real(dp), dimension(nc, nc), intent(out)  gc_side,
integer, intent(in)  nc 
)

Definition at line 783 of file m_a3_ghostcell.f90.