SELF_Data Module


Uses

  • module~~self_data~~UsesGraph module~self_data SELF_Data module~self_lagrange~3 SELF_Lagrange module~self_data->module~self_lagrange~3 iso_c_binding iso_c_binding module~self_data->iso_c_binding FEQParse FEQParse module~self_data->FEQParse module~self_constants SELF_Constants module~self_data->module~self_constants module~self_hdf5 SELF_HDF5 module~self_data->module~self_hdf5 module~self_metadata SELF_Metadata module~self_data->module~self_metadata HDF5 HDF5 module~self_data->HDF5 module~self_lagrange~3->iso_c_binding module~self_lagrange~3->module~self_constants 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_constants->iso_c_binding module~self_constants->iso_fortran_env module~self_hdf5->module~self_constants module~self_hdf5->HDF5 module~self_hdf5->iso_fortran_env mpi mpi module~self_hdf5->mpi module~self_metadata->module~self_hdf5 module~self_metadata->HDF5 module~self_lagrange_t->iso_c_binding module~self_lagrange_t->module~self_constants module~self_lagrange_t->module~self_hdf5 module~self_lagrange_t->HDF5 module~self_lagrange_t->iso_fortran_env module~self_supportroutines SELF_SupportRoutines module~self_lagrange_t->module~self_supportroutines module~self_quadrature SELF_Quadrature module~self_lagrange_t->module~self_quadrature module~self_supportroutines->module~self_constants module~self_supportroutines->iso_fortran_env module~self_quadrature->module~self_constants module~self_quadrature->iso_fortran_env

Used by

  • module~~self_data~~UsedByGraph module~self_data SELF_Data module~self_tensor_2d_t SELF_Tensor_2D_t module~self_tensor_2d_t->module~self_data module~self_tensor_3d_t SELF_Tensor_3D_t module~self_tensor_3d_t->module~self_data module~self_geometry_1d SELF_Geometry_1D module~self_geometry_1d->module~self_data module~self_mesh_1d SELF_Mesh_1D module~self_geometry_1d->module~self_mesh_1d module~self_scalar_1d~3 SELF_Scalar_1D module~self_geometry_1d->module~self_scalar_1d~3 module~self_scalar_3d_t SELF_Scalar_3D_t module~self_scalar_3d_t->module~self_data module~self_scalar_1d_t SELF_Scalar_1D_t module~self_scalar_1d_t->module~self_data module~self_scalar_2d_t SELF_Scalar_2D_t module~self_scalar_2d_t->module~self_data module~self_geometry_2d SELF_Geometry_2D module~self_geometry_2d->module~self_data module~self_vector_2d~2 SELF_Vector_2D module~self_geometry_2d->module~self_vector_2d~2 module~self_tensor_2d~2 SELF_Tensor_2D module~self_geometry_2d->module~self_tensor_2d~2 module~self_scalar_2d SELF_Scalar_2D module~self_geometry_2d->module~self_scalar_2d module~self_vector_2d_t SELF_Vector_2D_t module~self_vector_2d_t->module~self_data module~self_mesh_1d->module~self_data module~self_mesh_1d->module~self_scalar_1d~3 module~self_vector_3d_t SELF_Vector_3D_t module~self_vector_3d_t->module~self_data module~self_geometry_3d SELF_Geometry_3D module~self_geometry_3d->module~self_data module~self_tensor_3d SELF_Tensor_3D module~self_geometry_3d->module~self_tensor_3d module~self_vector_3d SELF_Vector_3D module~self_geometry_3d->module~self_vector_3d module~self_scalar_3d~2 SELF_Scalar_3D module~self_geometry_3d->module~self_scalar_3d~2 module~self_vector_2d~2->module~self_vector_2d_t module~self_tensor_2d~2->module~self_tensor_2d_t module~self_scalar_1d~3->module~self_scalar_1d_t module~self_mappedscalar_2d_t SELF_MappedScalar_2D_t module~self_mappedscalar_2d_t->module~self_geometry_2d module~self_mappedscalar_2d_t->module~self_tensor_2d~2 module~self_mappedscalar_2d_t->module~self_scalar_2d module~self_dgmodel1d SELF_DGModel1D module~self_dgmodel1d->module~self_mesh_1d module~self_dgmodel1d_t SELF_DGModel1D_t module~self_dgmodel1d->module~self_dgmodel1d_t module~self_mappedscalar_1d SELF_MappedScalar_1D module~self_dgmodel1d->module~self_mappedscalar_1d module~self_vector_3d~2 SELF_Vector_3D module~self_vector_3d~2->module~self_vector_3d_t module~self_tensor_2d SELF_Tensor_2D module~self_tensor_2d->module~self_tensor_2d_t module~self_scalar_2d->module~self_scalar_2d_t module~self_mappedvector_3d_t SELF_MappedVector_3D_t module~self_mappedvector_3d_t->module~self_geometry_3d module~self_mappedscalar_1d_t SELF_MappedScalar_1D_t module~self_mappedscalar_1d_t->module~self_geometry_1d module~self_mappedscalar_1d_t->module~self_mesh_1d module~self_mappedscalar_1d_t->module~self_scalar_1d~3 module~self_tensor_3d->module~self_tensor_3d_t module~self_scalar_3d SELF_Scalar_3D module~self_scalar_3d->module~self_scalar_3d_t module~self_scalar_2d~2 SELF_Scalar_2D module~self_scalar_2d~2->module~self_scalar_2d_t module~self_tensor_3d~2 SELF_Tensor_3D module~self_tensor_3d~2->module~self_tensor_3d_t module~self_scalar_1d~2 SELF_Scalar_1D module~self_scalar_1d~2->module~self_scalar_1d_t module~self_dgmodel2d_t SELF_DGModel2D_t module~self_dgmodel2d_t->module~self_geometry_2d module~self_mappedscalar_2d~2 SELF_MappedScalar_2D module~self_dgmodel2d_t->module~self_mappedscalar_2d~2 module~self_mappedvector_2d SELF_MappedVector_2D module~self_dgmodel2d_t->module~self_mappedvector_2d module~self_dgmodel1d_t->module~self_mesh_1d module~self_dgmodel1d_t->module~self_mappedscalar_1d module~self_scalar_1d SELF_Scalar_1D module~self_scalar_1d->module~self_scalar_1d_t module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mappedvector_2d_t->module~self_geometry_2d module~self_mappedvector_2d_t->module~self_vector_2d~2 module~self_mappedvector_2d_t->module~self_tensor_2d~2 module~self_vector_2d SELF_Vector_2D module~self_vector_2d->module~self_vector_2d_t module~self_vector_3d->module~self_vector_3d_t module~self_dgmodel3d_t SELF_DGModel3D_t module~self_dgmodel3d_t->module~self_geometry_3d module~self_mappedscalar_3d~2 SELF_MappedScalar_3D module~self_dgmodel3d_t->module~self_mappedscalar_3d~2 module~self_mappedvector_3d~2 SELF_MappedVector_3D module~self_dgmodel3d_t->module~self_mappedvector_3d~2 module~self_scalar_3d~2->module~self_scalar_3d_t module~self_mappedscalar_3d_t SELF_MappedScalar_3D_t module~self_mappedscalar_3d_t->module~self_geometry_3d module~self_mappedscalar_3d_t->module~self_tensor_3d module~self_mappedscalar_3d_t->module~self_scalar_3d~2 module~self_mappedscalar_2d~2->module~self_mappedscalar_2d_t module~self_mappedscalar_1d->module~self_mappedscalar_1d_t module~self_mappedscalar_2d SELF_MappedScalar_2D module~self_mappedscalar_2d->module~self_mappedscalar_2d_t module~self_mappedvector_3d SELF_MappedVector_3D module~self_mappedvector_3d->module~self_mappedvector_3d_t module~self_mappedscalar_1d~2 SELF_MappedScalar_1D module~self_mappedscalar_1d~2->module~self_mappedscalar_1d_t 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_dgmodel1d~2 SELF_DGModel1D module~self_dgmodel1d~2->module~self_dgmodel1d_t module~self_dgmodel3d~2 SELF_DGModel3D module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_mappedscalar_3d~2->module~self_mappedscalar_3d_t module~self_mappedscalar_3d SELF_MappedScalar_3D module~self_mappedscalar_3d->module~self_mappedscalar_3d_t module~self_mappedvector_3d~2->module~self_mappedvector_3d_t 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_dgmodel3d SELF_DGModel3D module~self_dgmodel3d->module~self_dgmodel3d_t module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_dgmodel2d module~self_burgers1d_t self_Burgers1D_t module~self_burgers1d_t->module~self_dgmodel1d~2 module~self_advection_diffusion_1d_t self_advection_diffusion_1d_t module~self_advection_diffusion_1d_t->module~self_dgmodel1d~2 module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_dgmodel3d module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_dgmodel2d module~self_nulldgmodel1d_t self_NullDGModel1D_t module~self_nulldgmodel1d_t->module~self_dgmodel1d~2 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_advection_diffusion_1d self_advection_diffusion_1d module~self_advection_diffusion_1d->module~self_dgmodel1d~2 module~self_advection_diffusion_1d->module~self_advection_diffusion_1d_t module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_dgmodel3d module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_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_nulldgmodel1d self_NullDGModel1D module~self_nulldgmodel1d->module~self_nulldgmodel1d_t module~self_nulldgmodel1d~2 self_NullDGModel1D module~self_nulldgmodel1d~2->module~self_nulldgmodel1d_t module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_t module~self_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_burgers1d~2 self_Burgers1D module~self_burgers1d~2->module~self_burgers1d_t module~self_advection_diffusion_1d~2 self_advection_diffusion_1d module~self_advection_diffusion_1d~2->module~self_advection_diffusion_1d_t module~self_burgers1d self_Burgers1D module~self_burgers1d->module~self_burgers1d_t module~self_advection_diffusion_2d self_advection_diffusion_2d module~self_advection_diffusion_2d->module~self_advection_diffusion_2d_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 module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: selfStrongForm =0
integer, public, parameter:: selfWeakBRForm =3
integer, public, parameter:: selfWeakCGForm =2
integer, public, parameter:: selfWeakDGForm =1

Derived Types

type, public :: SELF_DataObj

The SELF_DataObj class is a base class for all data objects in SELF. A data object in SELF is a multidimensional array of data, represented on both host and device, that is associated with an interpolant, metadata, and (optionally) an equation string. Type extensions of the SELF_DataObj include scalars, vectors, and tensors in 1-D, 2-D, and 3-D using the storage patterns that are expected for derivative and interpolation operations defined in SELF_Lagrange.f90 Additionally, each extended type has the necessary attributes to store information on element interiors and element boundaries, both of which are commonly used for spectral element solvers.

Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
type(EquationParser), public, allocatable:: eqn(:)
type(Lagrange), public, pointer:: interp
type(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, public :: SetDescription => SetDescription_DataObj
generic, public :: SetEquation => SetEquation_DataObj
procedure, private :: SetEquation_DataObj
procedure, public :: SetName => SetName_DataObj
procedure, public :: SetUnits => SetUnits_DataObj

Subroutines

public subroutine SetDescription_DataObj(this, ivar, description)

Set the description of the ivar-th variable

Arguments

TypeIntentOptionalAttributesName
class(SELF_DataObj), intent(inout) :: this
integer, intent(in) :: ivar
character, intent(in) :: description

public subroutine SetEquation_DataObj(this, ivar, eqnChar)

Sets the equation parser for the ivar-th variable

Arguments

TypeIntentOptionalAttributesName
class(SELF_DataObj), intent(inout) :: this
integer, intent(in) :: ivar
character, intent(in) :: eqnChar

public subroutine SetName_DataObj(this, ivar, name)

Set the name of the ivar-th variable

Arguments

TypeIntentOptionalAttributesName
class(SELF_DataObj), intent(inout) :: this
integer, intent(in) :: ivar
character, intent(in) :: name

public subroutine SetUnits_DataObj(this, ivar, units)

Set the units of the ivar-th variable

Arguments

TypeIntentOptionalAttributesName
class(SELF_DataObj), intent(inout) :: this
integer, intent(in) :: ivar
character, intent(in) :: units