38 int const component_id,
unsigned const integration_order,
39 unsigned const shapefunction_order,
unsigned const global_dim,
40 std::map<
int, std::shared_ptr<MaterialPropertyLib::Medium>>
const& media)
42 DBUG(
"Constructing WellboreCompensateNeumann BC.");
47 "WellboreCompensateNeumann BC only implemented for the "
48 "WellboreSimulator processes.");
50 assert(variable_id == 0 || variable_id == 1 || variable_id == 2);
55 "The dimension ({:d}) of the given boundary mesh '{:s}' is not by "
57 "lower than the bulk dimension ({:d}).",
61 auto const pressure_id = 0;
62 auto const velocity_id = 1;
63 auto const enthalpy_id = 2;
65 std::vector<MeshLib::Node*>
const& bc_nodes = bc_mesh.
getNodes();
68 pressure_id, {component_id}, std::move(bc_mesh_subset));
70 velocity_id, {component_id}, std::move(bc_mesh_subset));
72 enthalpy_id, {component_id}, std::move(bc_mesh_subset));
79 return std::make_unique<WellboreCompensateNeumannBoundaryCondition>(
80 integration_order, shapefunction_order, dof_table, variable_id,
81 component_id, global_dim, bc_mesh,
83 coefficients, std::move(dof_table_boundary_pressure),
84 std::move(dof_table_boundary_velocity),
85 std::move(dof_table_boundary_enthalpy), std::move(media_map)});
std::unique_ptr< WellboreCompensateNeumannBoundaryCondition > createWellboreCompensateNeumannBoundaryCondition(WellboreCompensateCoefficients const &coefficients, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table, int const variable_id, int const component_id, unsigned const integration_order, unsigned const shapefunction_order, unsigned const global_dim, std::map< int, std::shared_ptr< MaterialPropertyLib::Medium > > const &media)