18std::unique_ptr<HCNonAdvectiveFreeComponentFlowBoundaryCondition>
22 int const component_id,
unsigned const integration_order,
23 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
24 unsigned const global_dim,
Process const& process,
25 unsigned const shapefunction_order)
28 "Constructing open boundary for Component Transport process from "
32 "HCNonAdvectiveFreeComponentFlowBoundary");
37 "The dimension ({:d}) of the given boundary mesh '{:s}' is not by "
38 "one lower than the bulk dimension ({:d}).",
42 auto const boundary_permeability_name =
46 boundary_permeability_name, parameters, 1, &bc_mesh);
51 "HCNonAdvectiveFreeComponentFlowBoundary is only implemented for "
52 "2D boundary meshes");
54 auto const bulk_element_ids =
55 bc_mesh.
getProperties().template getPropertyVector<std::size_t>(
58 auto const bulk_face_ids =
59 bc_mesh.
getProperties().template getPropertyVector<std::size_t>(
77 return std::make_unique<HCNonAdvectiveFreeComponentFlowBoundaryCondition>(
78 integration_order, shapefunction_order, dof_table, variable_id,
79 component_id, global_dim, bc_mesh,
81 boundary_permeability, *bulk_face_ids, *bulk_element_ids, process});
Definition of the Element class.
void DBUG(fmt::format_string< Args... > fmt, Args &&... args)
T getConfigParameter(std::string const ¶m) const
void checkConfigParameter(std::string const ¶m, std::string_view const value) const
unsigned getDimension() const
Returns the dimension of the mesh (determined by the maximum dimension over all elements).
Properties & getProperties()
const std::string getName() const
Get name of the mesh.
std::size_t getNumberOfNodes() const
Get the number of nodes.
std::size_t getNumberOfElements() const
Get the number of elements.
constexpr std::string_view getBulkIDString(MeshItemType mesh_item_type)
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)
std::unique_ptr< HCNonAdvectiveFreeComponentFlowBoundaryCondition > createHCNonAdvectiveFreeComponentFlowBoundaryCondition(BaseLib::ConfigTree const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table, int const variable_id, int const component_id, unsigned const integration_order, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, unsigned const global_dim, Process const &process, unsigned const shapefunction_order)