48 virtual void execute()
override;
const InputParameters & parameters() const
Computes the void volume associated with each node.
void rebuildStructures()
reinitialize _nodal_void_volume and rebuild MPI communication lists of this object
std::unordered_map< const Node *, Real > _nodal_void_volume
_nodal_void_volume[node] = void volume of the node.
virtual void timestepSetup() override
If _rebuilding_needed then rebuildStructures()
bool _rebuilding_needed
whether reinitializing of _nodal_void_volume and rebuilding MPI communication lists is needed,...
virtual void finalize() override
If there are more than 1 processor, call exchangeGhostedInfo.
static InputParameters validParams()
virtual void initialSetup() override
void buildCommLists()
Build MPI communication lists specifying which _nodal_void_volume info should be exchanged with other...
virtual void meshChanged() override
Set _rebuilding_needed = true to signal that the internal datastructures need rebuilding.
const VariablePhiValue & _phi
shape function
std::map< processor_id_type, std::vector< const Node * > > _nodes_to_send
_nodes_to_send[proc_id] = list of my nodes.
virtual void execute() override
Loops over all elements owned by this processor, computing the sum specified above.
const VariableValue & _porosity
porosity
virtual void threadJoin(const UserObject &uo) override
Adds _nodal_void_volume from all threads that have looped over different elements in their execute().
const processor_id_type _my_pid
processor ID of this object
std::map< processor_id_type, std::vector< const Node * > > _nodes_to_receive
_nodes_to_receive[proc_id] = list of my nodes.
virtual void initialize() override
Zeroes _nodal_void_volume.
Real getNodalVoidVolume(const Node *node) const
void exchangeGhostedInfo()
Exchange _nodal_void_volume for nodes that are joined to elements owned by other processors.
VariableValueTempl< false > VariableValue
VariableShapeValue< false > VariablePhiValue