boundaries_perp_m Module

Setting of perpendicular boundary conditions


Uses

  • module~~boundaries_perp_m~~UsesGraph module~boundaries_perp_m boundaries_perp_m module~descriptors_m descriptors_m module~boundaries_perp_m->module~descriptors_m module~error_handling_m error_handling_m module~boundaries_perp_m->module~error_handling_m module~mesh_cart_m mesh_cart_m module~boundaries_perp_m->module~mesh_cart_m module~precision_m precision_m module~boundaries_perp_m->module~precision_m module~screen_io_m screen_io_m module~boundaries_perp_m->module~screen_io_m module~status_codes_m status_codes_m module~boundaries_perp_m->module~status_codes_m module~descriptors_m->module~screen_io_m module~error_handling_m->module~precision_m module~error_handling_m->module~screen_io_m module~error_handling_m->module~status_codes_m module~comm_handling_m comm_handling_m module~error_handling_m->module~comm_handling_m mpi mpi module~error_handling_m->mpi netcdf netcdf module~error_handling_m->netcdf module~mesh_cart_m->module~descriptors_m module~mesh_cart_m->module~error_handling_m module~mesh_cart_m->module~precision_m module~mesh_cart_m->module~status_codes_m iso_c_binding iso_c_binding module~mesh_cart_m->iso_c_binding module~mesh_cart_m->module~comm_handling_m module~equilibrium_m equilibrium_m module~mesh_cart_m->module~equilibrium_m module~slab_equilibrium_m slab_equilibrium_m module~mesh_cart_m->module~slab_equilibrium_m module~mesh_cart_m->netcdf module~precision_m->iso_c_binding iso_fortran_env iso_fortran_env module~precision_m->iso_fortran_env module~precision_m->mpi module~precision_m->netcdf module~screen_io_m->module~precision_m module~screen_io_m->iso_fortran_env module~screen_io_m->netcdf module~comm_handling_m->mpi module~equilibrium_m->module~precision_m module~slab_equilibrium_m->module~descriptors_m module~slab_equilibrium_m->module~precision_m module~slab_equilibrium_m->module~screen_io_m module~slab_equilibrium_m->module~equilibrium_m module~params_equi_slab_m params_equi_slab_m module~slab_equilibrium_m->module~params_equi_slab_m module~params_equi_slab_m->module~error_handling_m module~params_equi_slab_m->module~precision_m module~params_equi_slab_m->module~screen_io_m module~params_equi_slab_m->module~status_codes_m module~params_equi_slab_m->iso_fortran_env

Used by

  • module~~boundaries_perp_m~~UsedByGraph module~boundaries_perp_m boundaries_perp_m module~helmholtz_operator_m helmholtz_operator_m module~helmholtz_operator_m->module~boundaries_perp_m module~helmholtz_solver_direct_s helmholtz_solver_direct_s module~helmholtz_solver_direct_s->module~boundaries_perp_m module~helmholtz_solver_direct_s->module~helmholtz_operator_m module~helmholtz_solver_petsc_s helmholtz_solver_petsc_s module~helmholtz_solver_petsc_s->module~boundaries_perp_m module~multigrid_m multigrid_m module~multigrid_m->module~boundaries_perp_m module~multigrid_solver_m multigrid_solver_m module~multigrid_solver_m->module~boundaries_perp_m module~multigrid_solver_m->module~helmholtz_operator_m module~multigrid_solver_m->module~multigrid_m module~multigrid_solver_s multigrid_solver_s module~multigrid_solver_s->module~boundaries_perp_m module~multigrid_solver_s->module~multigrid_solver_m module~helmholtz_netcdfio_m helmholtz_netcdfio_m module~helmholtz_netcdfio_m->module~helmholtz_operator_m module~helmholtz_solver_factory_m helmholtz_solver_factory_m module~helmholtz_solver_factory_m->module~multigrid_m module~helmholtz_solver_mgmres_cxx_s helmholtz_solver_mgmres_cxx_s module~helmholtz_solver_mgmres_cxx_s->module~multigrid_m module~multigrid_s multigrid_s module~multigrid_s->module~multigrid_m program~benchmark_helmholtz_solvers benchmark_helmholtz_solvers program~benchmark_helmholtz_solvers->module~multigrid_m program~benchmark_helmholtz_solvers->module~helmholtz_netcdfio_m program~benchmark_helmholtz_solvers->module~helmholtz_solver_factory_m

Subroutines

public subroutine set_perpbnds(mesh, bnd_descrs, u, bnd_vals)

Sets non-homogeneous perpendicular boundary condition for some quantity u

Arguments

Type IntentOptional Attributes Name
type(mesh_cart_t), intent(in) :: mesh

Mesh

integer, intent(in), dimension(mesh%get_n_points_boundary()) :: bnd_descrs

Descriptors for boundary condition at individual boundary points

real(kind=FP), intent(inout), dimension(mesh%get_n_points()) :: u

Variable for which boundary conditions are set

real(kind=FP), intent(in), optional, dimension(mesh%get_n_points_boundary()) :: bnd_vals

Values (or normal gradient) for boundary condition, default homogeneous=0

public subroutine compute_bndnmn_matrix_row(mesh, ind, cols, vals, nz)

Computes single row of Neumann boundary matrix

Arguments

Type IntentOptional Attributes Name
type(mesh_cart_t), intent(in) :: mesh

Mesh

integer, intent(in) :: ind

Mesh index (=row of boundary matrix) MUST be a boundary index

integer, intent(out), dimension(3) :: cols

Column indices, where non-zero values may be present

real(kind=FP), intent(out), dimension(3) :: vals

Values of non-zero elements

integer, intent(out) :: nz

Number of non-zero elements

public subroutine bnd_types_to_bnd_descrs(mesh, bnd_type_core, bnd_type_wall, bnd_type_dome, bnd_type_out, bnd_descrs)

Arguments

Type IntentOptional Attributes Name
type(mesh_cart_t), intent(in) :: mesh

Mesh

integer, intent(in) :: bnd_type_core

Boundary type for core boundary

integer, intent(in) :: bnd_type_wall

Boundary type for wall boundary

integer, intent(in) :: bnd_type_dome

Boundary type for dome boundary

integer, intent(in) :: bnd_type_out

Boundary type for outer(mask) boundary

integer, intent(out), dimension(mesh%get_n_points_boundary()) :: bnd_descrs

Boundary descriptors on boundary points

public subroutine extrapolate_ghost_points(mesh, u)

Extrapolates ghost points via inverse distance extrapolation

Arguments

Type IntentOptional Attributes Name
type(mesh_cart_t), intent(in) :: mesh

Mesh

real(kind=FP), intent(inout), dimension(mesh%get_n_points()) :: u

Variable for which ghost points are set