|
BSpline Finite Element Exterior Calculus
|
The tensor product domain type; contrary to DomainDecomp, this type is specific to tensor product B-spline spaces. More...
Public Member Functions | |
| pure type(tensorproddomain) function | init_tensorprod_domain (decomp) |
| Initialize a TensorProdDomain. | |
Public Member Functions inherited from m_domain_decomp::domaindecomp | |
| procedure | is_sequential_memory (this, dir) |
| Determine whether the memory layout is sequential in this direction. | |
| procedure | is_shared_memory (this, dir) |
| Determine whether the memory layout is shared in this direction. | |
| procedure | is_distributed_memory (this, dir) |
| Determine whether the memory layout is distributed in this direction. | |
| procedure | destroy (this) |
| Destroy a DomainDecomp by freeing the communicators. | |
| type(domaindecomp) function | init_domain_decomp (memory_layout_x, memory_layout_y, memory_layout_z, nx, ny, nz, comm, flat_mpi, dimensionality, my_node, my_shmem_rank, nr_nodes, nr_shmem_ranks) |
| Initialize a DomainDecomp. | |
Public Attributes | |
| type(box) | my_eval_bounds |
| The subdomain bounds space on this node including the guard layer (i.e., where it is possible to evaluate the tensor product B-splines) | |
| type(box) | my_rank_resp_bounds |
| The subdomain bounds space on this node without the guard layer (i.e., the part of the domain owned by this node) | |
Public Attributes inherited from m_domain_decomp::domaindecomp | |
| integer | my_rank |
| The rank of this MPI process in the communicator. | |
| integer | nr_ranks |
| The number of ranks in the communicator. | |
| integer | my_node = -1 |
| The node/processor ID (color used for splitting) | |
| integer | nr_nodes = 0 |
| The total number of distributed memory nodes in the communicator. | |
| integer | my_shmem_rank = -1 |
| The rank in the shared memory communicator. | |
| integer | nr_shmem_ranks = 0 |
| The number of ranks on the same node. | |
| integer, dimension(3) | memory_layout |
| The memory layout in each direction (MEMORY_LAYOUT_SEQUENTIAL, MEMORY_LAYOUT_SHARED, MEMORY_LAYOUT_DISTRIBUTED) | |
| integer, dimension(3) | my_subinterval_ijk |
| The subinterval index in the x,y,z-direction. | |
| integer, dimension(3) | nr_subintervals |
| The number of subintervals in each direction (based on node distribution) | |
| integer | comm = MPI_COMM_NULL |
| The communicator for all ranks. | |
| integer | comm_shmem = MPI_COMM_NULL |
| The shared memory communicator (for ranks on the same node) | |
| integer | comm_node = MPI_COMM_NULL |
| The communicator for the leading ranks on each node. | |
| integer, dimension(3) | nr_eff_neighbours |
| The number of neighbouring domains for any memory layout. | |
| integer, dimension(3) | nr_comm_neighbours |
| The number of neighbouring domains for distributed memory layout. | |
| logical | flat_mpi |
| Forced flat MPI mode (i.e., no shared memory) | |
The tensor product domain type; contrary to DomainDecomp, this type is specific to tensor product B-spline spaces.
Initialize a TensorProdDomain.
| pure type(tensorproddomain) function m_domain_decomp::tensorproddomain::init_tensorprod_domain | ( | type(domaindecomp), intent(in) | decomp | ) |
Initialize a TensorProdDomain.
| [in] | decomp | The DomainDecomp to use for initializing the TensorProdDomain |