SELF_MappedVector_2D_t Module


Uses

  • module~~self_mappedvector_2d_t~~UsesGraph module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mesh_2d SELF_Mesh_2D module~self_mappedvector_2d_t->module~self_mesh_2d FEQParse FEQParse module~self_mappedvector_2d_t->FEQParse module~self_lagrange~3 SELF_Lagrange module~self_mappedvector_2d_t->module~self_lagrange~3 module~self_vector_2d~2 SELF_Vector_2D module~self_mappedvector_2d_t->module~self_vector_2d~2 module~self_constants SELF_Constants module~self_mappedvector_2d_t->module~self_constants iso_c_binding iso_c_binding module~self_mappedvector_2d_t->iso_c_binding module~self_tensor_2d~2 SELF_Tensor_2D module~self_mappedvector_2d_t->module~self_tensor_2d~2 module~self_geometry_2d SELF_Geometry_2D module~self_mappedvector_2d_t->module~self_geometry_2d module~self_domaindecomposition SELF_DomainDecomposition module~self_mappedvector_2d_t->module~self_domaindecomposition module~self_mesh_2d_t SELF_Mesh_2D_t module~self_mesh_2d->module~self_mesh_2d_t module~self_lagrange~3->module~self_constants module~self_lagrange~3->iso_c_binding iso_fortran_env iso_fortran_env module~self_lagrange~3->iso_fortran_env module~self_lagrange_t SELF_Lagrange_t module~self_lagrange~3->module~self_lagrange_t module~self_vector_2d_t SELF_Vector_2D_t module~self_vector_2d~2->module~self_vector_2d_t module~self_constants->iso_c_binding module~self_constants->iso_fortran_env module~self_tensor_2d_t SELF_Tensor_2D_t module~self_tensor_2d~2->module~self_tensor_2d_t module~self_geometry_2d->module~self_mesh_2d module~self_geometry_2d->module~self_lagrange~3 module~self_geometry_2d->module~self_vector_2d~2 module~self_geometry_2d->module~self_constants module~self_geometry_2d->module~self_tensor_2d~2 module~self_supportroutines SELF_SupportRoutines module~self_geometry_2d->module~self_supportroutines module~self_scalar_2d SELF_Scalar_2D module~self_geometry_2d->module~self_scalar_2d module~self_data SELF_Data module~self_geometry_2d->module~self_data module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition->module~self_domaindecomposition_t module~self_tensor_2d_t->FEQParse module~self_tensor_2d_t->module~self_lagrange~3 module~self_tensor_2d_t->module~self_constants module~self_tensor_2d_t->iso_c_binding module~self_tensor_2d_t->module~self_data module~self_hdf5 SELF_HDF5 module~self_tensor_2d_t->module~self_hdf5 module~self_metadata SELF_Metadata module~self_tensor_2d_t->module~self_metadata HDF5 HDF5 module~self_tensor_2d_t->HDF5 module~self_supportroutines->module~self_constants module~self_supportroutines->iso_fortran_env module~self_scalar_2d->module~self_constants module~self_scalar_2d->iso_c_binding module~self_scalar_2d_t SELF_Scalar_2D_t module~self_scalar_2d->module~self_scalar_2d_t module~self_domaindecomposition_t->module~self_lagrange~3 module~self_domaindecomposition_t->module~self_constants module~self_domaindecomposition_t->iso_c_binding module~self_domaindecomposition_t->module~self_supportroutines mpi mpi module~self_domaindecomposition_t->mpi module~self_mesh_2d_t->module~self_lagrange~3 module~self_mesh_2d_t->module~self_constants module~self_mesh_2d_t->iso_c_binding module~self_mesh_2d_t->module~self_domaindecomposition module~self_mesh_2d_t->module~self_supportroutines module~self_mesh SELF_Mesh module~self_mesh_2d_t->module~self_mesh module~self_mesh_2d_t->module~self_hdf5 module~self_mesh_2d_t->HDF5 module~self_lagrange_t->module~self_constants module~self_lagrange_t->iso_c_binding module~self_lagrange_t->iso_fortran_env module~self_lagrange_t->module~self_supportroutines module~self_quadrature SELF_Quadrature module~self_lagrange_t->module~self_quadrature module~self_lagrange_t->module~self_hdf5 module~self_lagrange_t->HDF5 module~self_vector_2d_t->FEQParse module~self_vector_2d_t->module~self_lagrange~3 module~self_vector_2d_t->module~self_constants module~self_vector_2d_t->iso_c_binding module~self_vector_2d_t->module~self_data module~self_vector_2d_t->module~self_hdf5 module~self_vector_2d_t->module~self_metadata module~self_vector_2d_t->HDF5 module~self_data->FEQParse module~self_data->module~self_lagrange~3 module~self_data->module~self_constants module~self_data->iso_c_binding module~self_data->module~self_hdf5 module~self_data->module~self_metadata module~self_data->HDF5 module~self_mesh->module~self_constants module~self_mesh->iso_c_binding module~self_mesh->module~self_domaindecomposition module~self_quadrature->module~self_constants module~self_quadrature->iso_fortran_env module~self_hdf5->module~self_constants module~self_hdf5->iso_fortran_env module~self_hdf5->HDF5 module~self_hdf5->mpi module~self_scalar_2d_t->FEQParse module~self_scalar_2d_t->module~self_lagrange~3 module~self_scalar_2d_t->module~self_constants module~self_scalar_2d_t->iso_c_binding module~self_scalar_2d_t->module~self_data module~self_scalar_2d_t->module~self_hdf5 module~self_scalar_2d_t->module~self_metadata module~self_scalar_2d_t->HDF5 module~self_metadata->module~self_hdf5 module~self_metadata->HDF5

Used by

  • module~~self_mappedvector_2d_t~~UsedByGraph module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mappedvector_2d SELF_MappedVector_2D module~self_mappedvector_2d->module~self_mappedvector_2d_t module~self_mappedvector_2d~2 SELF_MappedVector_2D module~self_mappedvector_2d~2->module~self_mappedvector_2d_t module~self_dgmodel2d_t SELF_DGModel2D_t module~self_dgmodel2d_t->module~self_mappedvector_2d module~self_dgmodel2d SELF_DGModel2D module~self_dgmodel2d->module~self_dgmodel2d_t module~self_dgmodel2d~2 SELF_DGModel2D module~self_dgmodel2d~2->module~self_dgmodel2d_t module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_dgmodel2d module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_dgmodel2d module~self_nulldgmodel2d_t self_NullDGModel2D_t module~self_nulldgmodel2d_t->module~self_dgmodel2d module~self_lineareuler2d_t self_LinearEuler2D_t module~self_lineareuler2d_t->module~self_dgmodel2d module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_advection_diffusion_2d~2 self_advection_diffusion_2d module~self_advection_diffusion_2d~2->module~self_advection_diffusion_2d_t module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_advection_diffusion_2d self_advection_diffusion_2d module~self_advection_diffusion_2d->module~self_advection_diffusion_2d_t module~self_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_nulldgmodel2d self_NullDGModel2D module~self_nulldgmodel2d->module~self_nulldgmodel2d_t module~self_lineareuler2d~2 self_LinearEuler2D module~self_lineareuler2d~2->module~self_lineareuler2d_t module~self_lineareuler2d self_LinearEuler2D module~self_lineareuler2d->module~self_lineareuler2d_t

Contents


Derived Types

type, public, extends(Vector2D) :: MappedVector2D_t

Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: avgBoundary
character(len=3), public :: backend ="cpu"
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundary
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:):: boundaryNormal
type(EquationParser), public, allocatable:: eqn(:)
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: extBoundary
type(SEMQuad), public, pointer:: geometry=> null()
logical, public :: geometry_associated =.false.
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: interior
type(Lagrange), public, pointer:: interp
type(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, private :: ApplyFlip => ApplyFlip_MappedVector2D_t
procedure, public :: AssociateGeometry => AssociateGeometry_MappedVector2D_t
procedure, public :: AverageSides => AverageSides_Vector2D_t
procedure, public :: BoundaryInterp => BoundaryInterp_Vector2D_t
procedure, public :: DissociateGeometry => DissociateGeometry_MappedVector2D_t
generic, public :: Divergence => Divergence_Vector2D_t
procedure, public :: Free => Free_Vector2D_t
generic, public :: Gradient => Gradient_Vector2D_t
generic, public :: GridInterp => GridInterp_Vector2D_t
procedure, public :: Init => Init_Vector2D_t
procedure, private :: MPIExchangeAsync => MPIExchangeAsync_MappedVector2D_t
generic, public :: MappedDGDivergence => MappedDGDivergence_MappedVector2D_t
procedure, private :: MappedDGDivergence_MappedVector2D_t
generic, public :: MappedDivergence => MappedDivergence_MappedVector2D_t
procedure, private :: MappedDivergence_MappedVector2D_t
procedure, public :: SetDescription => SetDescription_DataObj
generic, public :: SetEquation => SetEquation_DataObj, SetEquation_Vector2D_t
procedure, public :: SetInteriorFromEquation => SetInteriorFromEquation_MappedVector2D_t
procedure, public :: SetName => SetName_DataObj
procedure, public :: SetUnits => SetUnits_DataObj
procedure, public :: SideExchange => SideExchange_MappedVector2D_t
procedure, public :: UpdateDevice => UpdateDevice_Vector2D_t
procedure, public :: UpdateHost => UpdateHost_Vector2D_t
generic, public :: WriteHDF5 => WriteHDF5_MPI_Vector2D_t, WriteHDF5_Vector2D_t

Subroutines

public subroutine ApplyFlip_MappedVector2D_t(this, mesh)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this
type(Mesh2D), intent(in) :: mesh

public subroutine AssociateGeometry_MappedVector2D_t(this, geometry)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this
type(SEMQuad), intent(in), target:: geometry

public subroutine DissociateGeometry_MappedVector2D_t(this)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this

public subroutine MPIExchangeAsync_MappedVector2D_t(this, mesh)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this
type(Mesh2D), intent(inout) :: mesh

public subroutine MappedDGDivergence_MappedVector2D_t(this, df)

Computes the divergence of a 2-D vector using the weak form On input, the attribute of the vector is assigned and the attribute is set to the physical directions of the vector. This method will project the vector onto the contravariant basis vectors.

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(in) :: this
real(kind=prec) :: df(1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar)

public subroutine MappedDivergence_MappedVector2D_t(this, df)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(in) :: this
real(kind=prec), intent(out) :: df(1:this%N+1,1:this%N+1,1:this%nelem,1:this%nvar)

public subroutine SetInteriorFromEquation_MappedVector2D_t(this, geometry, time)

Sets the this % interior attribute using the eqn attribute, geometry (for physical positions), and provided simulation time.

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this
type(SEMQuad), intent(in) :: geometry
real(kind=prec), intent(in) :: time

public subroutine SideExchange_MappedVector2D_t(this, mesh)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector2D_t), intent(inout) :: this
type(Mesh2D), intent(inout) :: mesh