19 params.
addRequiredParam<std::vector<BoundaryName>>(
"connections",
"Junction connections");
26 const std::vector<BoundaryName> & connections =
27 getParam<std::vector<BoundaryName>>(
"connections");
28 for (
const auto & connection_string : connections)
39 auto & boundary_info =
mesh().
getMesh().get_boundary_info();
43 const std::string & comp_name = connection._component_name;
45 if (hasComponentByName<Component1D>(comp_name))
47 const Component1D & comp = getComponentByName<Component1D>(comp_name);
50 boundary_info.add_side(conn._elem, conn._side, boundary_id);
55 boundary_info.sideset_name(boundary_id) =
name();
60 const auto & it = node_to_elem.find(nid);
61 if (it == node_to_elem.end())
64 const std::vector<dof_id_type> & elems = it->second;
65 for (
const auto & e : elems)
78 if (elem !=
nullptr && elem->processor_id() ==
processor_id())
79 _proc_ids.push_back(elem->processor_id());
92 logError(
"There must be at least one connection.");
boundary_id_type BoundaryID
Base class for 1D component junctions and boundaries.
virtual void setupMesh() override
Performs mesh setup such as creating mesh or naming mesh sets.
static InputParameters validParams()
virtual void check() const override
Check the component integrity.
void addConnection(const BoundaryName &boundary_name)
Adds a connection for this component.
const std::vector< Connection > & getConnections() const
Returns the vector of connections of this component.
std::vector< dof_id_type > _nodes
Boundary node IDs from connected components.
std::vector< Connection > _connections
Vector of connections of this component.
std::vector< dof_id_type > _connected_elems
Element IDs of connected 1D components.
std::vector< processor_id_type > _proc_ids
Processor IDs of connected 1D components.
virtual void initSecondary() override
Perform secondary initialization, which relies on init() being called for all components.
virtual void check() const override
Check the component integrity.
Component1DJunction(const InputParameters ¶ms)
static InputParameters validParams()
virtual void setupMesh() override
Performs mesh setup such as creating mesh or naming mesh sets.
Base class for 1D components.
virtual const std::vector< Connection > & getConnections(Component1DConnection::EEndType end_type) const
Gets the vector of connections of an end type for this component.
const THMMesh & constMesh() const
Const reference to mesh, which can be called at any point.
void logError(Args &&... args) const
Logs an error.
virtual void initSecondary()
Perform secondary initialization, which relies on init() being called for all components.
THMMesh & mesh()
Non-const reference to THM mesh, which can only be called before the end of mesh setup.
void mooseError(Args &&... args) const
const std::unordered_map< dof_id_type, std::vector< dof_id_type > > & nodeToElemMap()
virtual Elem * queryElemPtr(const dof_id_type i)
virtual BoundaryID getNextBoundaryId()
Gets the next nodeset or sideset ID.
processor_id_type processor_id() const
const Parallel::Communicator & comm() const