SELF_MappedVector_3D Module


Uses

  • module~~self_mappedvector_3d~~UsesGraph module~self_mappedvector_3d SELF_MappedVector_3D module~self_gpublas~2 SELF_GPUBLAS module~self_mappedvector_3d->module~self_gpublas~2 module~self_gpuinterfaces SELF_GPUInterfaces module~self_mappedvector_3d->module~self_gpuinterfaces module~self_gpu SELF_GPU module~self_mappedvector_3d->module~self_gpu iso_c_binding iso_c_binding module~self_mappedvector_3d->iso_c_binding module~self_mappedvector_3d_t SELF_MappedVector_3D_t module~self_mappedvector_3d->module~self_mappedvector_3d_t module~self_gpublas~2->iso_c_binding module~self_gpu_enums SELF_GPU_enums module~self_gpublas~2->module~self_gpu_enums iso_fortran_env iso_fortran_env module~self_gpublas~2->iso_fortran_env module~self_constants SELF_Constants module~self_gpublas~2->module~self_constants module~self_gpuinterfaces->module~self_gpu module~self_gpuinterfaces->iso_c_binding module~self_gpu->iso_c_binding module~self_gpu->module~self_gpu_enums module~self_mappedvector_3d_t->iso_c_binding module~self_domaindecomposition~2 SELF_DomainDecomposition module~self_mappedvector_3d_t->module~self_domaindecomposition~2 module~self_mesh_3d~2 SELF_Mesh_3D module~self_mappedvector_3d_t->module~self_mesh_3d~2 module~self_geometry_3d SELF_Geometry_3D module~self_mappedvector_3d_t->module~self_geometry_3d module~self_mappedvector_3d_t->module~self_constants FEQParse FEQParse module~self_mappedvector_3d_t->FEQParse module~self_lagrange~3 SELF_Lagrange module~self_mappedvector_3d_t->module~self_lagrange~3 module~self_domaindecomposition~2->iso_c_binding module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition~2->module~self_domaindecomposition_t mpi mpi module~self_domaindecomposition~2->mpi module~self_mesh_3d~2->module~self_gpu module~self_mesh_3d~2->iso_c_binding module~self_mesh_3d_t SELF_Mesh_3D_t module~self_mesh_3d~2->module~self_mesh_3d_t module~self_gpu_enums->iso_c_binding module~self_geometry_3d->module~self_mesh_3d~2 module~self_geometry_3d->module~self_constants module~self_geometry_3d->module~self_lagrange~3 module~self_tensor_3d~2 SELF_Tensor_3D module~self_geometry_3d->module~self_tensor_3d~2 module~self_data SELF_Data module~self_geometry_3d->module~self_data module~self_scalar_3d SELF_Scalar_3D module~self_geometry_3d->module~self_scalar_3d module~self_supportroutines SELF_SupportRoutines module~self_geometry_3d->module~self_supportroutines module~self_vector_3d~2 SELF_Vector_3D module~self_geometry_3d->module~self_vector_3d~2 module~self_constants->iso_c_binding module~self_constants->iso_fortran_env module~self_lagrange~3->module~self_gpu module~self_lagrange~3->iso_c_binding module~self_lagrange~3->iso_fortran_env module~self_lagrange~3->module~self_constants module~self_lagrange_t SELF_Lagrange_t module~self_lagrange~3->module~self_lagrange_t module~self_tensor_3d~2->module~self_gpublas~2 module~self_tensor_3d~2->module~self_gpu module~self_tensor_3d~2->iso_c_binding module~self_tensor_3d~2->iso_fortran_env module~self_tensor_3d~2->module~self_constants module~self_tensor_3d_t SELF_Tensor_3D_t module~self_tensor_3d~2->module~self_tensor_3d_t module~self_domaindecomposition_t->iso_c_binding module~self_domaindecomposition_t->module~self_constants module~self_domaindecomposition_t->module~self_lagrange~3 module~self_domaindecomposition_t->mpi module~self_domaindecomposition_t->module~self_supportroutines module~self_data->iso_c_binding module~self_data->module~self_constants module~self_data->FEQParse module~self_data->module~self_lagrange~3 module~self_hdf5 SELF_HDF5 module~self_data->module~self_hdf5 HDF5 HDF5 module~self_data->HDF5 module~self_metadata SELF_Metadata module~self_data->module~self_metadata module~self_mesh_3d_t->iso_c_binding module~self_mesh_3d_t->module~self_domaindecomposition~2 module~self_mesh_3d_t->module~self_constants module~self_mesh_3d_t->module~self_lagrange~3 module~self_mesh_3d_t->module~self_supportroutines module~self_mesh_3d_t->module~self_hdf5 module~self_mesh_3d_t->HDF5 module~self_mesh SELF_Mesh module~self_mesh_3d_t->module~self_mesh module~self_scalar_3d->module~self_gpublas~2 module~self_scalar_3d->module~self_gpuinterfaces module~self_scalar_3d->module~self_gpu module~self_scalar_3d->iso_c_binding module~self_scalar_3d->module~self_constants module~self_scalar_3d_t SELF_Scalar_3D_t module~self_scalar_3d->module~self_scalar_3d_t module~self_supportroutines->iso_fortran_env module~self_supportroutines->module~self_constants module~self_vector_3d~2->module~self_gpublas~2 module~self_vector_3d~2->module~self_gpuinterfaces module~self_vector_3d~2->module~self_gpu module~self_vector_3d~2->iso_c_binding module~self_vector_3d~2->module~self_constants module~self_vector_3d_t SELF_Vector_3D_t module~self_vector_3d~2->module~self_vector_3d_t module~self_lagrange_t->iso_c_binding module~self_lagrange_t->iso_fortran_env module~self_lagrange_t->module~self_constants module~self_lagrange_t->module~self_supportroutines module~self_lagrange_t->module~self_hdf5 module~self_lagrange_t->HDF5 module~self_quadrature SELF_Quadrature module~self_lagrange_t->module~self_quadrature module~self_vector_3d_t->iso_c_binding module~self_vector_3d_t->module~self_constants module~self_vector_3d_t->FEQParse module~self_vector_3d_t->module~self_lagrange~3 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_tensor_3d_t->iso_c_binding module~self_tensor_3d_t->module~self_constants module~self_tensor_3d_t->FEQParse module~self_tensor_3d_t->module~self_lagrange~3 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_hdf5->iso_fortran_env module~self_hdf5->module~self_constants module~self_hdf5->mpi module~self_hdf5->HDF5 module~self_mesh->iso_c_binding module~self_mesh->module~self_domaindecomposition~2 module~self_mesh->module~self_constants module~self_metadata->module~self_hdf5 module~self_metadata->HDF5 module~self_scalar_3d_t->iso_c_binding module~self_scalar_3d_t->module~self_constants module~self_scalar_3d_t->FEQParse module~self_scalar_3d_t->module~self_lagrange~3 module~self_scalar_3d_t->module~self_data module~self_scalar_3d_t->module~self_hdf5 module~self_scalar_3d_t->HDF5 module~self_scalar_3d_t->module~self_metadata module~self_quadrature->iso_fortran_env module~self_quadrature->module~self_constants

Used by

  • module~~self_mappedvector_3d~~UsedByGraph module~self_mappedvector_3d SELF_MappedVector_3D module~self_dgmodel3d_t SELF_DGModel3D_t module~self_dgmodel3d_t->module~self_mappedvector_3d module~self_dgmodel3d~2 SELF_DGModel3D module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_dgmodel3d SELF_DGModel3D module~self_dgmodel3d->module~self_dgmodel3d_t module~self_lineareuler3d_t self_LinearEuler3D_t module~self_lineareuler3d_t->module~self_dgmodel3d~2 module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_dgmodel3d~2 module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_dgmodel3d~2 module~self_lineareuler3d self_LinearEuler3D module~self_lineareuler3d->module~self_lineareuler3d_t module~self_lineareuler3d~2 self_LinearEuler3D module~self_lineareuler3d~2->module~self_lineareuler3d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t module~self_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_t

Contents


Interfaces

interface

  • public subroutine ContravariantProjection_3D_gpu(f, dsdx, N, nvar, nel) bind(c,name="0")

    Arguments

    TypeIntentOptionalAttributesName
    type(c_ptr), value:: f
    type(c_ptr), value:: dsdx
    integer(kind=c_int), value:: N
    integer(kind=c_int), value:: nvar
    integer(kind=c_int), value:: nel

Derived Types

type, public, extends(MappedVector3D_t) :: MappedVector3D

Components

TypeVisibilityAttributesNameInitial
integer, public :: M
integer, public :: N
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:,:):: avgBoundary
type(c_ptr), public :: avgBoundary_gpu
character(len=3), public :: backend ="gpu"
type(c_ptr), public :: blas_handle
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:,:):: boundary
real(kind=prec), public, pointer, contiguous, dimension(:,:,:,:,:):: boundaryNormal
type(c_ptr), public :: boundaryNormal_gpu
type(c_ptr), public :: boundary_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(c_ptr), public :: interpWork1
type(c_ptr), public :: interpWork2
type(Metadata), public, allocatable:: meta(:)
integer, public :: nElem
integer, public :: nVar

Type-Bound Procedures

procedure, public :: AssociateGeometry => AssociateGeometry_MappedVector3D_t
procedure, public :: AverageSides => AverageSides_Vector3D
procedure, public :: BoundaryInterp => BoundaryInterp_Vector3D
generic, public :: Curl => Curl_Vector3D_t
procedure, public :: DissociateGeometry => DissociateGeometry_MappedVector3D_t
generic, public :: Divergence => Divergence_Vector3D_t, Divergence_Vector3D
procedure, public :: Free => Free_Vector3D
generic, public :: Gradient => Gradient_Vector3D_t, Gradient_Vector3D
generic, public :: GridInterp => GridInterp_Vector3D_t, GridInterp_Vector3D
procedure, public :: Init => Init_Vector3D
procedure, public :: MPIExchangeAsync => MPIExchangeAsync_MappedVector3D
generic, public :: MappedDGDivergence => MappedDGDivergence_MappedVector3D_t, MappedDGDivergence_MappedVector3D
procedure, private :: MappedDGDivergence_MappedVector3D
generic, public :: MappedDivergence => MappedDivergence_MappedVector3D_t, MappedDivergence_MappedVector3D
procedure, private :: MappedDivergence_MappedVector3D
procedure, public :: SetDescription => SetDescription_DataObj
generic, public :: SetEquation => SetEquation_DataObj, SetEquation_Vector3D_t
procedure, public :: SetInteriorFromEquation => SetInteriorFromEquation_MappedVector3D
procedure, public :: SetName => SetName_DataObj
procedure, public :: SetUnits => SetUnits_DataObj
procedure, public :: SideExchange => SideExchange_MappedVector3D
procedure, public :: UpdateDevice => UpdateDevice_Vector3D
procedure, public :: UpdateHost => UpdateHost_Vector3D
generic, public :: WriteHDF5 => WriteHDF5_MPI_Vector3D_t, WriteHDF5_Vector3D_t

Subroutines

public subroutine MPIExchangeAsync_MappedVector3D(this, mesh)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector3D), intent(inout) :: this
type(Mesh3D), intent(inout) :: mesh

public subroutine MappedDGDivergence_MappedVector3D(this, df)

Computes the divergence of a 3-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(MappedVector3D), intent(in) :: this
type(c_ptr), intent(inout) :: df

public subroutine MappedDivergence_MappedVector3D(this, df)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector3D), intent(in) :: this
type(c_ptr), intent(inout) :: df

public subroutine SetInteriorFromEquation_MappedVector3D(this, geometry, time)

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

Arguments

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

public subroutine SideExchange_MappedVector3D(this, mesh)

Arguments

TypeIntentOptionalAttributesName
class(MappedVector3D), intent(inout) :: this
type(Mesh3D), intent(inout) :: mesh