SELF_MappedScalar_3D Module


Uses

  • module~~self_mappedscalar_3d~~UsesGraph module~self_mappedscalar_3d SELF_MappedScalar_3D module~self_mappedscalar_3d_t SELF_MappedScalar_3D_t module~self_mappedscalar_3d->module~self_mappedscalar_3d_t module~self_mesh_3d SELF_Mesh_3D module~self_mappedscalar_3d_t->module~self_mesh_3d module~self_scalar_3d SELF_Scalar_3D module~self_mappedscalar_3d_t->module~self_scalar_3d module~self_domaindecomposition SELF_DomainDecomposition module~self_mappedscalar_3d_t->module~self_domaindecomposition module~self_geometry_3d SELF_Geometry_3D module~self_mappedscalar_3d_t->module~self_geometry_3d module~self_tensor_3d~2 SELF_Tensor_3D module~self_mappedscalar_3d_t->module~self_tensor_3d~2 module~self_lagrange~3 SELF_Lagrange module~self_mappedscalar_3d_t->module~self_lagrange~3 module~self_constants SELF_Constants module~self_mappedscalar_3d_t->module~self_constants FEQParse FEQParse module~self_mappedscalar_3d_t->FEQParse iso_c_binding iso_c_binding module~self_mappedscalar_3d_t->iso_c_binding module~self_mesh_3d->iso_c_binding module~self_gpu SELF_GPU module~self_mesh_3d->module~self_gpu module~self_mesh_3d_t SELF_Mesh_3D_t module~self_mesh_3d->module~self_mesh_3d_t module~self_scalar_3d->module~self_constants module~self_scalar_3d->iso_c_binding module~self_scalar_3d->module~self_gpu module~self_gpuinterfaces SELF_GPUInterfaces module~self_scalar_3d->module~self_gpuinterfaces module~self_scalar_3d_t SELF_Scalar_3D_t module~self_scalar_3d->module~self_scalar_3d_t module~self_domaindecomposition->iso_c_binding module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition->module~self_domaindecomposition_t mpi mpi module~self_domaindecomposition->mpi iso_fortran_env iso_fortran_env module~self_domaindecomposition->iso_fortran_env module~self_geometry_3d->module~self_mesh_3d module~self_geometry_3d->module~self_scalar_3d module~self_geometry_3d->module~self_tensor_3d~2 module~self_geometry_3d->module~self_lagrange~3 module~self_geometry_3d->module~self_constants module~self_supportroutines SELF_SupportRoutines module~self_geometry_3d->module~self_supportroutines module~self_data SELF_Data module~self_geometry_3d->module~self_data module~self_vector_3d SELF_Vector_3D module~self_geometry_3d->module~self_vector_3d module~self_tensor_3d~2->module~self_constants module~self_tensor_3d~2->iso_c_binding module~self_tensor_3d~2->module~self_gpu module~self_tensor_3d~2->iso_fortran_env module~self_tensor_3d_t SELF_Tensor_3D_t module~self_tensor_3d~2->module~self_tensor_3d_t module~self_lagrange~3->module~self_constants module~self_lagrange~3->iso_c_binding module~self_lagrange_t SELF_Lagrange_t module~self_lagrange~3->module~self_lagrange_t module~self_lagrange~3->module~self_gpu module~self_lagrange~3->iso_fortran_env module~self_constants->iso_c_binding module~self_constants->iso_fortran_env 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_hdf5 SELF_HDF5 module~self_lagrange_t->module~self_hdf5 HDF5 HDF5 module~self_lagrange_t->HDF5 module~self_gpu->iso_c_binding module~self_gpu_enums~2 SELF_GPU_enums module~self_gpu->module~self_gpu_enums~2 module~self_mesh_3d_t->module~self_domaindecomposition module~self_mesh_3d_t->module~self_lagrange~3 module~self_mesh_3d_t->module~self_constants module~self_mesh_3d_t->iso_c_binding module~self_mesh_3d_t->module~self_supportroutines module~self_mesh_3d_t->module~self_quadrature module~self_mesh SELF_Mesh module~self_mesh_3d_t->module~self_mesh module~self_mesh_3d_t->module~self_hdf5 module~self_mesh_3d_t->HDF5 module~self_mesh_2d_t SELF_Mesh_2D_t module~self_mesh_3d_t->module~self_mesh_2d_t module~self_gpuinterfaces->iso_c_binding module~self_gpuinterfaces->module~self_gpu module~self_scalar_3d_t->module~self_lagrange~3 module~self_scalar_3d_t->module~self_constants module~self_scalar_3d_t->FEQParse module~self_scalar_3d_t->iso_c_binding module~self_scalar_3d_t->module~self_data module~self_scalar_3d_t->module~self_hdf5 module~self_scalar_3d_t->HDF5 module~self_metadata SELF_Metadata module~self_scalar_3d_t->module~self_metadata module~self_datapool SELF_DataPool module~self_scalar_3d_t->module~self_datapool 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->mpi module~self_domaindecomposition_t->module~self_supportroutines module~self_supportroutines->module~self_constants module~self_supportroutines->iso_fortran_env module~self_data->module~self_lagrange~3 module~self_data->module~self_constants module~self_data->FEQParse module~self_data->iso_c_binding module~self_data->module~self_hdf5 module~self_data->HDF5 module~self_data->module~self_metadata module~self_vector_3d->module~self_constants module~self_vector_3d->iso_c_binding module~self_vector_3d->module~self_gpu module~self_vector_3d->module~self_gpuinterfaces module~self_vector_3d_t SELF_Vector_3D_t module~self_vector_3d->module~self_vector_3d_t module~self_tensor_3d_t->module~self_lagrange~3 module~self_tensor_3d_t->module~self_constants module~self_tensor_3d_t->FEQParse module~self_tensor_3d_t->iso_c_binding module~self_tensor_3d_t->module~self_data module~self_tensor_3d_t->module~self_hdf5 module~self_tensor_3d_t->HDF5 module~self_tensor_3d_t->module~self_metadata module~self_tensor_3d_t->module~self_datapool module~self_quadrature->module~self_constants module~self_quadrature->iso_fortran_env module~self_mesh->module~self_domaindecomposition module~self_mesh->module~self_constants module~self_mesh->iso_c_binding module~self_gpu_enums~2->iso_c_binding module~self_hdf5->module~self_constants module~self_hdf5->mpi module~self_hdf5->iso_fortran_env module~self_hdf5->HDF5 module~self_mesh_2d_t->module~self_domaindecomposition 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_supportroutines module~self_mesh_2d_t->module~self_quadrature module~self_mesh_2d_t->module~self_mesh module~self_mesh_2d_t->module~self_hdf5 module~self_mesh_2d_t->HDF5 module~self_metadata->module~self_hdf5 module~self_metadata->HDF5 module~self_datapool->module~self_constants module~self_vector_3d_t->module~self_lagrange~3 module~self_vector_3d_t->module~self_constants module~self_vector_3d_t->FEQParse module~self_vector_3d_t->iso_c_binding module~self_vector_3d_t->module~self_data module~self_vector_3d_t->module~self_hdf5 module~self_vector_3d_t->HDF5 module~self_vector_3d_t->module~self_metadata module~self_vector_3d_t->module~self_datapool

Contents


Derived Types

type, public, extends(MappedScalar3D_t) :: MappedScalar3D

Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
integer(kind=c_size_t), public :: alloc_avgBoundary =0
integer(kind=c_size_t), public :: alloc_boundary =0
integer(kind=c_size_t), public :: alloc_boundarynormal =0
integer(kind=c_size_t), public :: alloc_extBoundary =0
integer(kind=c_size_t), public :: alloc_interior =0
real(kind=prec), public, allocatable, dimension(:,:,:,:,:):: anisoMortarBuff
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: avgBoundary
type(c_ptr), public :: avgBoundary_gpu

Bytes currently allocated for each device buffer, so Resize can reuse them (Stage 6b).

character(len=3), public :: backend ="gpu"
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundary
type(c_ptr), public :: boundary_gpu
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundarynormal

High-water-mark backing store for the arrays above (AMR Stage 6b; see SELF_DataPool). The public members are pointers remapped onto the leading part of these pools at the exact logical shape, so every extent, stride and shape() stays exactly as before while Resize can reuse the storage across an adaptation epoch. Nothing should index the pools.

type(c_ptr), public :: boundarynormal_gpu
type(EquationParser), public, allocatable:: eqn(:)
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: extBoundary
type(c_ptr), public :: extBoundary_gpu
type(SEMHex), public, pointer:: geometry=> null()
logical, public :: geometry_associated =.false.
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: interior
type(c_ptr), public :: interior_gpu
type(Lagrange), public, pointer:: interp
type(Metadata), public, allocatable:: meta(:)
real(kind=prec), public, allocatable, dimension(:,:,:,:,:):: mortarBuff
integer, public :: nElem
integer, public :: nVar
real(kind=prec), public, pointer, contiguous:: pool_avgBoundary(:)=> null()
real(kind=prec), public, pointer, contiguous:: pool_boundary(:)=> null()
real(kind=prec), public, pointer, contiguous:: pool_boundarynormal(:)=> null()
real(kind=prec), public, pointer, contiguous:: pool_extBoundary(:)=> null()
real(kind=prec), public, pointer, contiguous:: pool_interior(:)=> null()

Type-Bound Procedures

procedure, public :: AnisoMortarExchange => AnisoMortarExchange_MappedScalar3D_t
procedure, public :: AssociateGeometry => AssociateGeometry_MappedScalar3D_t
procedure, public :: AverageSides => AverageSides_Scalar3D
procedure, public :: BoundaryInterp => BoundaryInterp_Scalar3D
procedure, public :: DissociateGeometry => DissociateGeometry_MappedScalar3D_t
procedure, public :: Free => Free_Scalar3D
generic, public :: Gradient => Gradient_Scalar3D_t, Gradient_Scalar3D
generic, public :: GridInterp => GridInterp_Scalar3D_t, GridInterp_Scalar3D
procedure, public :: Init => Init_Scalar3D
procedure, public :: MapArrays => MapArrays_Scalar3D_t
generic, public :: MappedDGGradient => MappedDGGradient_MappedScalar3D_t
generic, public :: MappedGradient => MappedGradient_MappedScalar3D_t
procedure, public :: MortarExchange => MortarExchange_MappedScalar3D_t
procedure, public :: Resize => Resize_MappedScalar3D_t
procedure, public :: SetDescription => SetDescription_DataObj
generic, public :: SetEquation => SetEquation_DataObj
procedure, public :: SetInteriorFromEquation => SetInteriorFromEquation_MappedScalar3D_t
procedure, public :: SetName => SetName_DataObj
procedure, public :: SetUnits => SetUnits_DataObj
procedure, public :: SideExchange => SideExchange_MappedScalar3D_t
procedure, public :: UpdateDevice => UpdateDevice_Scalar3D
procedure, public :: UpdateHost => UpdateHost_Scalar3D
generic, public :: WriteHDF5 => WriteHDF5_MPI_Scalar3D_t, WriteHDF5_Scalar3D_t