Fills lower-d side maps and node-to-block ownership for MooseMesh::cacheInfo(). More...
#include <CacheInfoThread.h>
Public Member Functions | |
| CacheInfoThread (MooseMesh &mesh, bool cache_node_blocks) | |
| CacheInfoThread (CacheInfoThread &x, Threads::split split) | |
| void | operator() (const ConstElemRange &range) |
| void | join (const CacheInfoThread &y) |
Protected Member Functions | |
| void | cacheNodeBlock (dof_id_type node_id, SubdomainID block_id) |
Record that an element of subdomain block_id is incident on the node node_id. | |
Protected Attributes | |
| MooseMesh & | _mesh |
| const bool | _cache_node_blocks |
| Whether node-to-block ownership has to be recorded at all. | |
| std::unordered_map< dof_id_type, SubdomainID > | _node_block |
| The subdomain of the elements incident on a node, for the nodes whose incident elements all agree, which is every node away from a subdomain interface. | |
| std::unordered_map< dof_id_type, std::set< SubdomainID > > | _interface_node_blocks |
| The full subdomain set of the nodes whose incident elements disagree, that is the nodes on a subdomain interface. | |
| std::set< SubdomainID > | _lower_d_interior_blocks |
| std::set< SubdomainID > | _lower_d_boundary_blocks |
| std::unordered_map< std::pair< const Elem *, unsigned short int >, const Elem * > | _higher_d_elem_side_to_lower_d_elem |
| std::unordered_map< const Elem *, unsigned short int > | _lower_d_elem_to_higher_d_elem_side |
Friends | |
| class | MooseMesh |
Fills lower-d side maps and node-to-block ownership for MooseMesh::cacheInfo().
The range is all elements this rank knows about (local and ghosted).
Definition at line 21 of file CacheInfoThread.h.
| CacheInfoThread::CacheInfoThread | ( | MooseMesh & | mesh, |
| bool | cache_node_blocks | ||
| ) |
| cache_node_blocks | Whether to record node-to-block ownership. MooseMesh::cacheInfo() passes false when the relation is constant, i.e. when the mesh has a single subdomain. |
Definition at line 15 of file CacheInfoThread.C.
| CacheInfoThread::CacheInfoThread | ( | CacheInfoThread & | x, |
| Threads::split | split | ||
| ) |
Definition at line 20 of file CacheInfoThread.C.
|
protected |
Record that an element of subdomain block_id is incident on the node node_id.
Each node is a key in exactly one of _node_block and _interface_node_blocks: it stays in _node_block while every recorded subdomain for the given node_id matches, and the first mismatching subdomain moves it to _interface_node_blocks with both subdomains.
Definition at line 26 of file CacheInfoThread.C.
Referenced by join(), and operator()().
| void CacheInfoThread::join | ( | const CacheInfoThread & | y | ) |
Definition at line 93 of file CacheInfoThread.C.
| void CacheInfoThread::operator() | ( | const ConstElemRange & | range | ) |
Definition at line 47 of file CacheInfoThread.C.
|
friend |
Definition at line 64 of file CacheInfoThread.h.
|
protected |
Whether node-to-block ownership has to be recorded at all.
Definition at line 47 of file CacheInfoThread.h.
Referenced by operator()().
|
protected |
Definition at line 61 of file CacheInfoThread.h.
Referenced by join(), and operator()().
|
protected |
The full subdomain set of the nodes whose incident elements disagree, that is the nodes on a subdomain interface.
Interface nodes are typically a small fraction of the mesh, so storing a set for each of them costs little.
Definition at line 56 of file CacheInfoThread.h.
Referenced by MooseMesh::cacheInfo(), cacheNodeBlock(), and join().
|
protected |
Definition at line 59 of file CacheInfoThread.h.
Referenced by join(), and operator()().
|
protected |
Definition at line 62 of file CacheInfoThread.h.
Referenced by join(), and operator()().
|
protected |
Definition at line 58 of file CacheInfoThread.h.
Referenced by join(), and operator()().
|
protected |
Definition at line 44 of file CacheInfoThread.h.
Referenced by operator()().
|
protected |
The subdomain of the elements incident on a node, for the nodes whose incident elements all agree, which is every node away from a subdomain interface.
Definition at line 51 of file CacheInfoThread.h.
Referenced by MooseMesh::cacheInfo(), cacheNodeBlock(), and join().