| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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(SEMHex), | public, | pointer | :: | geometry | => | null() | |
| logical, | public | :: | geometry_associated | = | .false. | ||
| type(c_ptr), | public | :: | halo_recvbuf_gpu | = | c_null_ptr | ||
| type(c_ptr), | public | :: | halo_sendbuf_gpu | = | c_null_ptr | ||
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:,:,:,:,:) | :: | interior | |||
| type(Lagrange), | public, | pointer | :: | interp | |||
| type(Metadata), | public, | allocatable | :: | meta(:) | |||
| integer, | public | :: | nElem | ||||
| integer, | public | :: | nVar |
| procedure, public :: AssociateGeometry => AssociateGeometry_MappedVector3D_t | |
| procedure, public :: AverageSides => AverageSides_Vector3D_t | |
| procedure, public :: BoundaryInterp => BoundaryInterp_Vector3D_t | |
| generic, public :: Curl => Curl_Vector3D_t | |
| procedure, public :: DissociateGeometry => DissociateGeometry_MappedVector3D_t | |
| generic, public :: Divergence => Divergence_Vector3D_t | |
| procedure, public :: Free => Free_MappedVector3D | |
| generic, public :: Gradient => Gradient_Vector3D_t | |
| generic, public :: GridInterp => GridInterp_Vector3D_t | |
| procedure, public :: Init => Init_Vector3D_t | |
| 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_t | |
| procedure, public :: UpdateHost => UpdateHost_Vector3D_t | |
| generic, public :: WriteHDF5 => WriteHDF5_MPI_Vector3D_t, WriteHDF5_Vector3D_t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(inout) | :: | this |
Post the aggregated halo exchange: one MPI_Irecv/MPI_Isend pair per neighboring rank, carrying every (side,variable,component) boundary trace shared with that rank in a single packed device buffer. The boundary array is laid out with the component index outermost, so the pack/unpack kernels treat the vector as 3*nvar scalar variables. Packed buffers are allocated on first use; the shared side tables are built by SideExchange before this is called.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(inout) | :: | this | |||
| type(Mesh3D), | intent(inout) | :: | mesh |
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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(in) | :: | this | |||
| type(c_ptr), | intent(inout) | :: | df |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(in) | :: | this | |||
| type(c_ptr), | intent(inout) | :: | df |
Sets the this % interior attribute using the eqn attribute, geometry (for physical positions), and provided simulation time.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(inout) | :: | this | |||
| type(SEMHex), | intent(in) | :: | geometry | |||
| real(kind=prec), | intent(in) | :: | time |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MappedVector3D), | intent(inout) | :: | this | |||
| type(Mesh3D), | intent(inout) | :: | mesh |