sll_m_boundary_condition_descriptors.F90 Source File


This file depends on

sourcefile~~sll_m_boundary_condition_descriptors.f90~~EfferentGraph sourcefile~sll_m_boundary_condition_descriptors.f90 sll_m_boundary_condition_descriptors.F90 sourcefile~sll_m_working_precision.f90 sll_m_working_precision.F90 sourcefile~sll_m_boundary_condition_descriptors.f90->sourcefile~sll_m_working_precision.f90

Files dependent on this one

sourcefile~~sll_m_boundary_condition_descriptors.f90~~AfferentGraph sourcefile~sll_m_boundary_condition_descriptors.f90 sll_m_boundary_condition_descriptors.F90 sourcefile~sbase.f90 sbase.F90 sourcefile~sbase.f90->sourcefile~sll_m_boundary_condition_descriptors.f90 sourcefile~sll_m_spline_interpolator_1d.f90 sll_m_spline_interpolator_1d.F90 sourcefile~sbase.f90->sourcefile~sll_m_spline_interpolator_1d.f90 sourcefile~sll_m_spline_interpolator_1d.f90->sourcefile~sll_m_boundary_condition_descriptors.f90 sourcefile~base.f90 base.F90 sourcefile~base.f90->sourcefile~sbase.f90 sourcefile~readstate.f90 readstate.F90 sourcefile~readstate.f90->sourcefile~sbase.f90 sourcefile~readstate.f90->sourcefile~base.f90 sourcefile~readstate_vars.f90 readstate_vars.F90 sourcefile~readstate.f90->sourcefile~readstate_vars.f90 sourcefile~readstate_vars.f90->sourcefile~sbase.f90 sourcefile~readstate_vars.f90->sourcefile~base.f90 sourcefile~gvec_post.f90 gvec_post.F90 sourcefile~gvec_post.f90->sourcefile~readstate_vars.f90 sourcefile~mhd3d.f90 mhd3d.F90 sourcefile~gvec_post.f90->sourcefile~mhd3d.f90 sourcefile~mhd3d_evalfunc.f90 mhd3d_evalfunc.F90 sourcefile~gvec_post.f90->sourcefile~mhd3d_evalfunc.f90 sourcefile~restart.f90 restart.F90 sourcefile~gvec_post.f90->sourcefile~restart.f90 sourcefile~analyze.f90 analyze.F90 sourcefile~gvec_post.f90->sourcefile~analyze.f90 sourcefile~gvec_to_jorek.f90 gvec_to_jorek.F90 sourcefile~gvec_to_jorek.f90->sourcefile~base.f90 sourcefile~gvec_to_jorek.f90->sourcefile~readstate.f90 sourcefile~gvec_to_jorek.f90->sourcefile~readstate_vars.f90 sourcefile~gvec_to_jorek_vars.f90 gvec_to_jorek_vars.F90 sourcefile~gvec_to_jorek.f90->sourcefile~gvec_to_jorek_vars.f90 sourcefile~gvec_to_jorek_vars.f90->sourcefile~base.f90 sourcefile~lambda_solve.f90 lambda_solve.F90 sourcefile~lambda_solve.f90->sourcefile~base.f90 sourcefile~mhd3d.f90->sourcefile~base.f90 sourcefile~mhd3d.f90->sourcefile~lambda_solve.f90 sourcefile~mhd3d.f90->sourcefile~mhd3d_evalfunc.f90 sourcefile~mhd3d_vars.f90 mhd3d_vars.F90 sourcefile~mhd3d.f90->sourcefile~mhd3d_vars.f90 sourcefile~mhd3d.f90->sourcefile~restart.f90 sourcefile~mhd3d.f90->sourcefile~analyze.f90 sourcefile~mhd3d_minimize.f90 mhd3d_minimize.F90 sourcefile~mhd3d.f90->sourcefile~mhd3d_minimize.f90 sourcefile~mhd3d_evalfunc.f90->sourcefile~base.f90 sourcefile~mhd3d_evalfunc.f90->sourcefile~mhd3d_vars.f90 sourcefile~mhd3d_vars.f90->sourcefile~base.f90 sourcefile~restart.f90->sourcefile~base.f90 sourcefile~restart.f90->sourcefile~readstate.f90 sourcefile~restart.f90->sourcefile~readstate_vars.f90 sourcefile~restart.f90->sourcefile~mhd3d_evalfunc.f90 sourcefile~restart.f90->sourcefile~mhd3d_vars.f90 sourcefile~sfl_boozer.f90 sfl_boozer.F90 sourcefile~sfl_boozer.f90->sourcefile~base.f90 sourcefile~sfl_boozer.f90->sourcefile~lambda_solve.f90 sourcefile~state.f90 state.F90 sourcefile~state.f90->sourcefile~base.f90 sourcefile~state.f90->sourcefile~readstate_vars.f90 sourcefile~state.f90->sourcefile~mhd3d.f90 sourcefile~state.f90->sourcefile~mhd3d_vars.f90 sourcefile~state.f90->sourcefile~restart.f90 sourcefile~state.f90->sourcefile~sfl_boozer.f90 sourcefile~transform_sfl.f90 transform_sfl.F90 sourcefile~state.f90->sourcefile~transform_sfl.f90 sourcefile~state.f90->sourcefile~analyze.f90 sourcefile~transform_sfl.f90->sourcefile~base.f90 sourcefile~transform_sfl.f90->sourcefile~sfl_boozer.f90 sourcefile~analyze.f90->sourcefile~mhd3d_vars.f90 sourcefile~convert_gvec_to_jorek.f90 convert_gvec_to_jorek.F90 sourcefile~convert_gvec_to_jorek.f90->sourcefile~gvec_to_jorek.f90 sourcefile~gvec_to_castor3d_vars.f90 gvec_to_castor3d_vars.F90 sourcefile~gvec_to_castor3d_vars.f90->sourcefile~transform_sfl.f90 sourcefile~gvec_to_gene_vars.f90 gvec_to_gene_vars.F90 sourcefile~gvec_to_gene_vars.f90->sourcefile~transform_sfl.f90 sourcefile~gvec_to_hopr_vars.f90 gvec_to_hopr_vars.F90 sourcefile~gvec_to_hopr_vars.f90->sourcefile~transform_sfl.f90 sourcefile~mhd3d_minimize.f90->sourcefile~mhd3d_evalfunc.f90 sourcefile~mhd3d_minimize.f90->sourcefile~restart.f90 sourcefile~mhd3d_minimize.f90->sourcefile~analyze.f90 sourcefile~run.f90 run.F90 sourcefile~run.f90->sourcefile~restart.f90 sourcefile~run.f90->sourcefile~analyze.f90 sourcefile~rungvec.f90 rungvec.F90 sourcefile~run.f90->sourcefile~rungvec.f90 sourcefile~rungvec.f90->sourcefile~mhd3d.f90 sourcefile~rungvec.f90->sourcefile~restart.f90 sourcefile~rungvec.f90->sourcefile~analyze.f90 sourcefile~gvec.f90 gvec.F90 sourcefile~gvec.f90->sourcefile~rungvec.f90

Source Code

! Copyright (c) INRIA
! License: CECILL-B
!
!> @ingroup boundary_condition_descriptors
!> @brief Describe different boundary conditions
!> @details
!> The intent of this module is to provide a single, library-wide definition
!> of the names used to describe different boundary conditions. One should
!> ALWAYS refer to specific boundary conditions by their
!> names and not through their integer representation, which could be changed.
!>
!> <b> How to use-it </b>
!>
!> Just add the line
!> @code
!> #include "sll_m_boundary_condition_descriptors.h"
!> @endcode
!
! To be considered here is to include also BC combinations, which may help
! save some coding instead of managing this internally within routines, for
! example a flag like SLL_DIRICHLET_NEUMANN could indicate two BC's along
! a particular dimension...
module sll_m_boundary_condition_descriptors
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "sll_working_precision.h"

  implicit none

  public :: &
    sll_p_conductor, &
    sll_p_dirichlet, &
    sll_p_halo, &
    sll_p_one_sided, &
    sll_p_hermite, &
    sll_p_interior, &
    sll_p_neumann, &
    sll_p_neumann_mode_0, &
    sll_p_periodic, &
    sll_p_open, &
    sll_p_mirror, &
    sll_p_greville, &
    sll_p_set_to_limit, &
    sll_p_silver_muller, &
    sll_p_user_defined

  private
!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  !> User defined boundary condition
  sll_int32, parameter :: sll_p_user_defined   = -1
  !> Periodic boundary condition u(1)=u(n)
  sll_int32, parameter :: sll_p_periodic       = 0
  !> Dirichlet boundary condition
  sll_int32, parameter :: sll_p_dirichlet      = 1
  !> Neumann boundary condition
  sll_int32, parameter :: sll_p_neumann        = 2
  !> Hermite boundary condition
  sll_int32, parameter :: sll_p_hermite        = 3
  !> Neumann boundary condition
  sll_int32, parameter :: sll_p_neumann_mode_0 = 4
  !> PLEASE ADD DOCUMENTATION
  sll_int32, parameter :: sll_p_set_to_limit   = 5
  !> Interior of domain
  sll_int32, parameter :: sll_p_interior       = 6
  !> Incoming wave boundar condition for Maxwell
  sll_int32, parameter :: SLL_INCOMING_WAVE  = 7
  !> Metallic boundary condition for Maxwell
  sll_int32, parameter :: sll_p_conductor      = 8
  !> Absorbing boundary condition fro Maxwell
  sll_int32, parameter :: sll_p_silver_muller  = 9
  !> Use a one-sided stencil at the boundary
  sll_int32, parameter :: sll_p_one_sided    = 10
  !> Values outside the domain are provided as halo cells (for domain decomposition)
  sll_int32, parameter :: sll_p_halo         = 11
  !> Use Greville points instead of conditions on derivative for B-Spline interpolation
  sll_int32, parameter :: sll_p_greville      = 12
  !> Duplicate boundary points to define knots for B-splines from grid
  sll_int32, parameter :: sll_p_open         = 13
  !> Mirror points around boundary to define knots for B-splines from grid
  sll_int32, parameter :: sll_p_mirror       = 14


end module sll_m_boundary_condition_descriptors