SELF_DomainDecomposition Module


Uses

  • module~~self_domaindecomposition~~UsesGraph module~self_domaindecomposition SELF_DomainDecomposition module~self_domaindecomposition_t SELF_DomainDecomposition_t module~self_domaindecomposition->module~self_domaindecomposition_t iso_c_binding iso_c_binding module~self_domaindecomposition->iso_c_binding mpi mpi module~self_domaindecomposition->mpi iso_fortran_env iso_fortran_env module~self_domaindecomposition->iso_fortran_env module~self_domaindecomposition_t->iso_c_binding module~self_domaindecomposition_t->mpi module~self_supportroutines SELF_SupportRoutines module~self_domaindecomposition_t->module~self_supportroutines module~self_lagrange~3 SELF_Lagrange module~self_domaindecomposition_t->module~self_lagrange~3 module~self_constants SELF_Constants module~self_domaindecomposition_t->module~self_constants module~self_supportroutines->iso_fortran_env module~self_supportroutines->module~self_constants module~self_lagrange~3->iso_c_binding module~self_lagrange~3->iso_fortran_env module~self_lagrange~3->module~self_constants module~self_gpu SELF_GPU module~self_lagrange~3->module~self_gpu 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_gpu->iso_c_binding module~self_gpu_enums~2 SELF_GPU_enums module~self_gpu->module~self_gpu_enums~2 module~self_lagrange_t->iso_c_binding module~self_lagrange_t->iso_fortran_env module~self_lagrange_t->module~self_supportroutines module~self_lagrange_t->module~self_constants 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_enums~2->iso_c_binding module~self_quadrature->iso_fortran_env module~self_quadrature->module~self_constants module~self_hdf5->mpi module~self_hdf5->iso_fortran_env module~self_hdf5->module~self_constants module~self_hdf5->HDF5

Used by

  • module~~self_domaindecomposition~~UsedByGraph module~self_domaindecomposition SELF_DomainDecomposition module~self_mesh SELF_Mesh module~self_mesh->module~self_domaindecomposition module~self_mesh_3d_t SELF_Mesh_3D_t module~self_mesh_3d_t->module~self_domaindecomposition module~self_mesh_3d_t->module~self_mesh module~self_mesh_2d_t SELF_Mesh_2D_t module~self_mesh_3d_t->module~self_mesh_2d_t module~self_mappedvector_2d_t SELF_MappedVector_2D_t module~self_mappedvector_2d_t->module~self_domaindecomposition module~self_mesh_2d SELF_Mesh_2D module~self_mappedvector_2d_t->module~self_mesh_2d module~self_geometry_2d SELF_Geometry_2D module~self_mappedvector_2d_t->module~self_geometry_2d module~self_mappedscalar_2d_t SELF_MappedScalar_2D_t module~self_mappedscalar_2d_t->module~self_domaindecomposition module~self_mappedscalar_2d_t->module~self_mesh_2d module~self_mappedscalar_2d_t->module~self_geometry_2d module~self_mesh_2d_t->module~self_domaindecomposition module~self_mesh_2d_t->module~self_mesh module~self_solutionmigration SELF_SolutionMigration module~self_solutionmigration->module~self_domaindecomposition module~self_mappedvector_3d_t SELF_MappedVector_3D_t module~self_mappedvector_3d_t->module~self_domaindecomposition module~self_mesh_3d SELF_Mesh_3D module~self_mappedvector_3d_t->module~self_mesh_3d module~self_geometry_3d SELF_Geometry_3D module~self_mappedvector_3d_t->module~self_geometry_3d module~self_mappedscalar_3d_t SELF_MappedScalar_3D_t module~self_mappedscalar_3d_t->module~self_domaindecomposition module~self_mappedscalar_3d_t->module~self_mesh_3d module~self_mappedscalar_3d_t->module~self_geometry_3d module~self_amrcontroller_3d SELF_AMRController_3D module~self_amrcontroller_3d->module~self_domaindecomposition module~self_amrcontroller_3d->module~self_solutionmigration module~self_amrcontroller_3d->module~self_mesh_3d module~self_dgmodel3d_t SELF_DGModel3D_t module~self_amrcontroller_3d->module~self_dgmodel3d_t module~self_adaptivemesh_3d SELF_AdaptiveMesh_3D module~self_amrcontroller_3d->module~self_adaptivemesh_3d module~self_amrcontroller_3d->module~self_geometry_3d module~self_octreemesh_3d SELF_OctreeMesh_3D module~self_amrcontroller_3d->module~self_octreemesh_3d module~self_transferplan_3d SELF_TransferPlan_3D module~self_amrcontroller_3d->module~self_transferplan_3d module~self_amrcontroller_2d SELF_AMRController_2D module~self_amrcontroller_2d->module~self_domaindecomposition module~self_amrcontroller_2d->module~self_solutionmigration module~self_amrcontroller_2d->module~self_mesh_2d module~self_dgmodel2d_t SELF_DGModel2D_t module~self_amrcontroller_2d->module~self_dgmodel2d_t module~self_quadtreemesh_2d SELF_QuadTreeMesh_2D module~self_amrcontroller_2d->module~self_quadtreemesh_2d module~self_amrcontroller_2d->module~self_geometry_2d module~self_adaptivemesh_2d SELF_AdaptiveMesh_2D module~self_amrcontroller_2d->module~self_adaptivemesh_2d module~self_transferplan_2d SELF_TransferPlan_2D module~self_amrcontroller_2d->module~self_transferplan_2d module~self_lineareuler2d_pml_t self_LinearEuler2D_PML_t module~self_lineareuler2d_pml_t->module~self_mesh module~self_lineareuler2d_t self_LinearEuler2D_t module~self_lineareuler2d_pml_t->module~self_lineareuler2d_t module~self_mappedscalar_2d~2 SELF_MappedScalar_2D module~self_lineareuler2d_pml_t->module~self_mappedscalar_2d~2 module~self_dgmodel2d~2 SELF_DGModel2D module~self_lineareuler2d_pml_t->module~self_dgmodel2d~2 module~self_mesh_3d->module~self_mesh_3d_t module~self_mappedvector_2d SELF_MappedVector_2D module~self_mappedvector_2d->module~self_mappedvector_2d_t module~self_advection_diffusion_1d_t self_advection_diffusion_1d_t module~self_advection_diffusion_1d_t->module~self_mesh module~self_dgmodel1d~2 SELF_DGModel1D module~self_advection_diffusion_1d_t->module~self_dgmodel1d~2 module~self_ecadvection2d_t SELF_ECAdvection2D_t module~self_ecadvection2d_t->module~self_mesh module~self_ecdgmodel2d SELF_ECDGModel2D module~self_ecadvection2d_t->module~self_ecdgmodel2d module~self_lineareuler2d_t->module~self_mesh module~self_lineareuler2d_t->module~self_dgmodel2d~2 module~self_lineareuler3d_t self_LinearEuler3D_t module~self_lineareuler3d_t->module~self_mesh module~self_dgmodel3d SELF_DGModel3D module~self_lineareuler3d_t->module~self_dgmodel3d module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_mesh module~self_advection_diffusion_2d_t->module~self_dgmodel2d~2 module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_mesh module~self_advection_diffusion_3d_t->module~self_dgmodel3d module~self_esatmo3d_t SELF_ESAtmo3D_t module~self_esatmo3d_t->module~self_mesh module~self_mappedscalar_3d~2 SELF_MappedScalar_3D module~self_esatmo3d_t->module~self_mappedscalar_3d~2 module~self_ecdgmodel3d~2 SELF_ECDGModel3D module~self_esatmo3d_t->module~self_ecdgmodel3d~2 module~self_mappedscalar_2d SELF_MappedScalar_2D module~self_mappedscalar_2d->module~self_mappedscalar_2d_t module~self_mappedscalar_3d SELF_MappedScalar_3D module~self_mappedscalar_3d->module~self_mappedscalar_3d_t module~self_amrcontroller_extruded SELF_AMRController_Extruded module~self_amrcontroller_extruded->module~self_amrcontroller_2d module~self_amrcontroller_extruded->module~self_mesh_3d module~self_amrcontroller_extruded->module~self_mesh_2d module~self_amrcontroller_extruded->module~self_dgmodel3d_t module~self_amrcontroller_extruded->module~self_dgmodel2d_t module~self_amrcontroller_extruded->module~self_quadtreemesh_2d module~self_amrcontroller_extruded->module~self_geometry_2d module~self_amrcontroller_extruded->module~self_adaptivemesh_2d module~self_amrcontroller_extruded->module~self_geometry_3d module~self_amrcontroller_extruded->module~self_transferplan_2d module~self_mesh_2d->module~self_mesh_2d_t module~self_burgers1d_t self_Burgers1D_t module~self_burgers1d_t->module~self_mesh module~self_burgers1d_t->module~self_dgmodel1d~2 module~self_mesh_3d~2 SELF_Mesh_3D module~self_mesh_3d~2->module~self_mesh_3d_t module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_mesh module~self_linearshallowwater2d_t->module~self_dgmodel2d~2 module~self_nulldgmodel1d_t self_NullDGModel1D_t module~self_nulldgmodel1d_t->module~self_mesh module~self_nulldgmodel1d_t->module~self_dgmodel1d~2 module~self_nulldgmodel2d_t self_NullDGModel2D_t module~self_nulldgmodel2d_t->module~self_mesh module~self_nulldgmodel2d_t->module~self_dgmodel2d~2 module~self_mesh_1d SELF_Mesh_1D module~self_mesh_1d->module~self_mesh module~self_ecadvection3d_t SELF_ECAdvection3D_t module~self_ecadvection3d_t->module~self_mesh module~self_ecadvection3d_t->module~self_ecdgmodel3d~2 module~self_esatmo2d_t SELF_ESAtmo2D_t module~self_esatmo2d_t->module~self_mesh module~self_esatmo2d_t->module~self_mappedscalar_2d~2 module~self_esatmo2d_t->module~self_ecdgmodel2d module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_mesh module~self_nulldgmodel3d_t->module~self_dgmodel3d module~self_mappedscalar_2d~2->module~self_mappedscalar_2d_t module~self_mappedvector_3d SELF_MappedVector_3D module~self_mappedvector_3d->module~self_mappedvector_3d_t module~self_mappedvector_2d~2 SELF_MappedVector_2D module~self_mappedvector_2d~2->module~self_mappedvector_2d_t module~self_dgmodel3d_t->module~self_solutionmigration module~self_dgmodel3d_t->module~self_mesh_3d module~self_dgmodel3d_t->module~self_mappedvector_3d module~self_dgmodel3d_t->module~self_mappedscalar_3d~2 module~self_dgmodel3d_t->module~self_geometry_3d module~self_dgmodel3d_t->module~self_transferplan_2d module~self_dgmodel3d_t->module~self_transferplan_3d module~self_mappedscalar_3d~2->module~self_mappedscalar_3d_t module~self_mesh_2d~2 SELF_Mesh_2D module~self_mesh_2d~2->module~self_mesh_2d_t module~self_mappedvector_3d~2 SELF_MappedVector_3D module~self_mappedvector_3d~2->module~self_mappedvector_3d_t module~self_dgmodel2d_t->module~self_solutionmigration module~self_dgmodel2d_t->module~self_mappedvector_2d module~self_dgmodel2d_t->module~self_mesh_2d module~self_dgmodel2d_t->module~self_mappedscalar_2d~2 module~self_dgmodel2d_t->module~self_geometry_2d module~self_dgmodel2d_t->module~self_transferplan_2d module~self_quadtreemesh_2d->module~self_mesh_2d module~self_dgmodel1d~2->module~self_mesh_1d module~self_dgmodel1d_t SELF_DGModel1D_t module~self_dgmodel1d~2->module~self_dgmodel1d_t module~self_mappedscalar_1d SELF_MappedScalar_1D module~self_dgmodel1d~2->module~self_mappedscalar_1d module~self_mappedscalar_1d_t SELF_MappedScalar_1D_t module~self_mappedscalar_1d_t->module~self_mesh_1d module~self_geometry_1d SELF_Geometry_1D module~self_mappedscalar_1d_t->module~self_geometry_1d module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t module~self_dgmodel3d~2 SELF_DGModel3D module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_dgmodel2d~2->module~self_mesh_2d module~self_dgmodel2d~2->module~self_dgmodel2d_t module~self_dgmodel2d~2->module~self_geometry_2d module~self_dgmodel2d~2->module~self_transferplan_2d module~self_advection_diffusion_1d self_advection_diffusion_1d module~self_advection_diffusion_1d->module~self_advection_diffusion_1d_t module~self_ecadvection2d SELF_ECAdvection2D module~self_ecadvection2d->module~self_ecadvection2d_t module~self_ecadvection2d->module~self_mesh_2d module~self_ecadvection2d->module~self_geometry_2d module~self_ecdgmodel2d_t SELF_ECDGModel2D_t module~self_ecadvection2d->module~self_ecdgmodel2d_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_advection_diffusion_1d~2->module~self_dgmodel1d~2 module~self_lineareuler2d_pml self_LinearEuler2D_PML module~self_lineareuler2d_pml->module~self_lineareuler2d_pml_t module~self_setinterface_3d_t SELF_SetInterface_3D_t module~self_setinterface_3d_t->module~self_mesh_3d module~self_columnoperators_3d SELF_ColumnOperators_3D module~self_columnoperators_3d->module~self_mesh_3d module~self_columnoperators_3d_t SELF_ColumnOperators_3D_t module~self_columnoperators_3d->module~self_columnoperators_3d_t module~self_columnoperators_3d->module~self_geometry_3d module~self_elementsetmesh_3d SELF_ElementSetMesh_3D module~self_elementsetmesh_3d->module~self_mesh_3d module~self_meshrefinement_3d SELF_MeshRefinement_3D module~self_meshrefinement_3d->module~self_mesh_3d module~self_adaptivemesh_3d->module~self_mesh_3d module~self_adaptivemesh_3d->module~self_octreemesh_3d module~self_lineareuler2d self_LinearEuler2D module~self_lineareuler2d->module~self_lineareuler2d_t module~self_nulldgmodel2d self_NullDGModel2D module~self_nulldgmodel2d->module~self_nulldgmodel2d_t module~self_dgmodel2d SELF_DGModel2D module~self_dgmodel2d->module~self_dgmodel2d_t module~self_lineareuler2d~2 self_LinearEuler2D module~self_lineareuler2d~2->module~self_lineareuler2d_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_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_geometry_2d->module~self_mesh_2d module~self_nulldgmodel1d self_NullDGModel1D module~self_nulldgmodel1d->module~self_nulldgmodel1d_t module~self_esatmo2d~2 SELF_ESAtmo2D module~self_esatmo2d~2->module~self_esatmo2d_t module~self_meshrefinement_2d SELF_MeshRefinement_2D module~self_meshrefinement_2d->module~self_mesh_2d module~self_esatmo2d SELF_ESAtmo2D module~self_esatmo2d->module~self_mesh_2d module~self_esatmo2d->module~self_esatmo2d_t module~self_esatmo2d->module~self_geometry_2d module~self_esatmo2d->module~self_ecdgmodel2d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_points SELF_Points module~self_points->module~self_mappedscalar_2d~2 module~self_points->module~self_mappedscalar_3d~2 module~self_points->module~self_geometry_2d module~self_points_t SELF_Points_t module~self_points->module~self_points_t module~self_points->module~self_geometry_3d module~self_points_t->module~self_mappedscalar_2d~2 module~self_points_t->module~self_mappedscalar_3d~2 module~self_points_t->module~self_geometry_2d module~self_points_t->module~self_geometry_3d module~self_dgmodel1d_t->module~self_mesh_1d module~self_dgmodel1d_t->module~self_mappedscalar_1d module~self_esatmo3d SELF_ESAtmo3D module~self_esatmo3d->module~self_esatmo3d_t module~self_geometry_1d->module~self_mesh_1d module~self_adaptivemesh_2d->module~self_mesh_2d module~self_adaptivemesh_2d->module~self_quadtreemesh_2d module~self_burgers1d~2 self_Burgers1D module~self_burgers1d~2->module~self_burgers1d_t module~self_multisetmodel3d_t SELF_MultiSetModel3D_t module~self_multisetmodel3d_t->module~self_mesh_3d module~self_multisetmodel3d_t->module~self_elementsetmesh_3d module~self_setinterface_3d SELF_SetInterface_3D module~self_multisetmodel3d_t->module~self_setinterface_3d module~self_multisetmodel3d_t->module~self_geometry_3d module~self_multisetmodel3d_t->module~self_dgmodel3d module~self_columnoperators_3d_t->module~self_mesh_3d module~self_columnoperators_3d_t->module~self_geometry_3d module~self_ecadvection2d~2 SELF_ECAdvection2D module~self_ecadvection2d~2->module~self_ecadvection2d_t module~self_lineareuler2d_pml~2 self_LinearEuler2D_PML module~self_lineareuler2d_pml~2->module~self_lineareuler2d_pml_t module~self_setinterface_3d->module~self_mesh_3d module~self_setinterface_3d->module~self_setinterface_3d_t module~self_geometry_3d->module~self_mesh_3d module~self_dgmodel3d->module~self_mesh_3d module~self_dgmodel3d->module~self_dgmodel3d_t module~self_dgmodel3d->module~self_geometry_3d module~self_dgmodel3d->module~self_transferplan_3d module~self_octreemesh_3d->module~self_mesh_3d module~self_ecadvection3d SELF_ECAdvection3D module~self_ecadvection3d->module~self_mesh_3d module~self_ecadvection3d->module~self_ecadvection3d_t module~self_ecadvection3d->module~self_geometry_3d module~self_ecdgmodel3d_t SELF_ECDGModel3D_t module~self_ecadvection3d->module~self_ecdgmodel3d_t module~self_esatmo3d~2 SELF_ESAtmo3D module~self_esatmo3d~2->module~self_mesh_3d module~self_esatmo3d~2->module~self_esatmo3d_t module~self_esatmo3d~2->module~self_geometry_3d module~self_esatmo3d~2->module~self_ecdgmodel3d_t module~self_lineareuler3d self_LinearEuler3D module~self_lineareuler3d->module~self_lineareuler3d_t module~self_ecadvection3d~2 SELF_ECAdvection3D module~self_ecadvection3d~2->module~self_ecadvection3d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_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_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_t module~self_lineareuler3d~2 self_LinearEuler3D module~self_lineareuler3d~2->module~self_lineareuler3d_t module~self_nulldgmodel1d~2 self_NullDGModel1D module~self_nulldgmodel1d~2->module~self_nulldgmodel1d_t module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_columnoperators_3d~2 SELF_ColumnOperators_3D module~self_columnoperators_3d~2->module~self_columnoperators_3d_t module~self_transferplan_2d->module~self_quadtreemesh_2d module~self_ecdgmodel2d_t->module~self_dgmodel2d~2 module~self_mappedtwopointvector_2d~2 SELF_MappedTwoPointVector_2D module~self_ecdgmodel2d_t->module~self_mappedtwopointvector_2d~2 module~self_mappedscalar_1d->module~self_mappedscalar_1d_t module~self_setinterface_3d~2 SELF_SetInterface_3D module~self_setinterface_3d~2->module~self_setinterface_3d_t module~self_mappedscalar_1d~2 SELF_MappedScalar_1D module~self_mappedscalar_1d~2->module~self_mappedscalar_1d_t module~self_mappedtwopointvector_2d_t SELF_MappedTwoPointVector_2D_t module~self_mappedtwopointvector_2d_t->module~self_geometry_2d module~self_points~2 SELF_Points module~self_points~2->module~self_points_t module~self_dgmodel1d SELF_DGModel1D module~self_dgmodel1d->module~self_dgmodel1d_t module~self_multisetmodel3d SELF_MultiSetModel3D module~self_multisetmodel3d->module~self_multisetmodel3d_t module~self_multisetmodel3d->module~self_setinterface_3d module~self_multisetmodel3d~2 SELF_MultiSetModel3D module~self_multisetmodel3d~2->module~self_multisetmodel3d_t module~self_ecdgmodel3d_t->module~self_dgmodel3d module~self_mappedtwopointvector_3d~2 SELF_MappedTwoPointVector_3D module~self_ecdgmodel3d_t->module~self_mappedtwopointvector_3d~2 module~self_transferplan_3d->module~self_octreemesh_3d module~self_mappedtwopointvector_3d_t SELF_MappedTwoPointVector_3D_t module~self_mappedtwopointvector_3d_t->module~self_geometry_3d module~self_ecdgmodel2d->module~self_ecdgmodel2d_t module~self_ecdgmodel3d~2->module~self_ecdgmodel3d_t module~self_mappedtwopointvector_2d~2->module~self_mappedtwopointvector_2d_t module~self_mappedtwopointvector_2d SELF_MappedTwoPointVector_2D module~self_mappedtwopointvector_2d->module~self_mappedtwopointvector_2d_t module~self_ecdgmodel2d~2 SELF_ECDGModel2D module~self_ecdgmodel2d~2->module~self_ecdgmodel2d_t module~self_ecdgmodel3d SELF_ECDGModel3D module~self_ecdgmodel3d->module~self_ecdgmodel3d_t module~self_mappedtwopointvector_3d~2->module~self_mappedtwopointvector_3d_t module~self_mappedtwopointvector_3d SELF_MappedTwoPointVector_3D module~self_mappedtwopointvector_3d->module~self_mappedtwopointvector_3d_t

Contents


Derived Types

type, public, extends(DomainDecomposition_t) :: DomainDecomposition

Components

TypeVisibilityAttributesNameInitial
integer, public, pointer, dimension(:):: elemToRank
type(c_ptr), public :: elemToRank_gpu
logical, public :: halo_built =.false.
integer, public :: halo_nnbr =0
integer, public :: halo_nsides =0
integer, public, allocatable:: halo_offset(:)
integer, public, allocatable:: halo_rank(:)
type(c_ptr), public :: halo_sides_gpu =c_null_ptr
logical, public :: initialized =.false.
integer, public :: maxMsg
integer, public :: mpiComm =MPI_COMM_NULL
logical, public :: mpiEnabled =.false.
integer, public :: mpiPrec
integer, public :: msgCount
integer, public :: nElem
integer, public :: nRanks
integer, public, pointer, dimension(:):: offSetElem
logical, public :: ownsMpi =.false.
integer, public :: rankId
integer, public, allocatable:: requests(:)
integer, public, allocatable:: stats(:,:)

Type-Bound Procedures

procedure, public :: BuildHaloExchange => BuildHaloExchange_DomainDecomposition
procedure, public :: CountRemoteMortarSides => CountRemoteMortarSides_DomainDecomposition_t
procedure, public :: CountRemoteSides => CountRemoteSides_DomainDecomposition_t
procedure, public :: FinalizeMPIExchangeAsync
procedure, public :: Free => Free_DomainDecomposition
procedure, public :: GenerateDecomposition => GenerateDecomposition_DomainDecomposition_t
procedure, public :: GenerateDecompositionFromOffsets => GenerateDecompositionFromOffsets_DomainDecomposition
procedure, public :: Init => Init_DomainDecomposition
procedure, public :: ReserveMessages => ReserveMessages_DomainDecomposition_t
procedure, public :: SetElemToRank => SetElemToRank_DomainDecomposition

Subroutines

public subroutine BuildHaloExchange_DomainDecomposition(this, sideInfo, nElem, nSidesPerElem)

Build the aggregated halo exchange tables for the mesh this domain decomposition belongs to.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(DomainDecomposition), intent(inout) :: this
integer, intent(in) :: sideInfo(1:5,1:nSidesPerElem,1:nElem)
integer, intent(in) :: nElem
integer, intent(in) :: nSidesPerElem

public subroutine Free_DomainDecomposition(this)

Arguments

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

public subroutine GenerateDecompositionFromOffsets_DomainDecomposition(this, offsetElem, maxMsg)

Device-aware wrapper of GenerateDecompositionFromOffsets_DomainDecomposition_t: builds the host decomposition from the prescribed offsets, then mirrors elemToRank to the device, as SetElemToRank does for the balanced decomposition.

Arguments

TypeIntentOptionalAttributesName
class(DomainDecomposition), intent(inout) :: this
integer, intent(in) :: offsetElem(1:this%nRanks+1)
integer, intent(in) :: maxMsg

public subroutine HaloKeySort(keys, elems, sides, flips, ranks, n)

Heap sort of the halo side list by ascending 64-bit key, permuting the companion arrays alongside the keys. O(n log n), in place; the relative order of equal keys is irrelevant because global side ids are unique.

Arguments

TypeIntentOptionalAttributesName
integer(kind=int64), intent(inout) :: keys(1:n)
integer, intent(inout) :: elems(1:n)
integer, intent(inout) :: sides(1:n)
integer, intent(inout) :: flips(1:n)
integer, intent(inout) :: ranks(1:n)
integer, intent(in) :: n

public subroutine HaloSiftDown(keys, elems, sides, flips, ranks, start, last)

Arguments

TypeIntentOptionalAttributesName
integer(kind=int64), intent(inout) :: keys(:)
integer, intent(inout) :: elems(:)
integer, intent(inout) :: sides(:)
integer, intent(inout) :: flips(:)
integer, intent(inout) :: ranks(:)
integer, intent(in) :: start
integer, intent(in) :: last

public subroutine HaloSwap(keys, elems, sides, flips, ranks, i, j)

Arguments

TypeIntentOptionalAttributesName
integer(kind=int64), intent(inout) :: keys(:)
integer, intent(inout) :: elems(:)
integer, intent(inout) :: sides(:)
integer, intent(inout) :: flips(:)
integer, intent(inout) :: ranks(:)
integer, intent(in) :: i
integer, intent(in) :: j

public subroutine Init_DomainDecomposition(this, comm)

Arguments

TypeIntentOptionalAttributesName
class(DomainDecomposition), intent(inout) :: this
integer, intent(in), optional :: comm

public subroutine SetElemToRank_DomainDecomposition(this, nElem)

Arguments

TypeIntentOptionalAttributesName
class(DomainDecomposition), intent(inout) :: this
integer, intent(in) :: nElem