26 int const variable_id,
27 int const component_id)
35 "Variable id or component id too high. Actual values: ({:d}, "
36 "{:d}), maximum values: ({:d}, {:d}).",
45 "The required bulk node ids map does not exist in the boundary "
46 "mesh '{:s}' or has the wrong data type (should be equivalent to "
47 "C++ data type std::size_t which is an unsigned integer of size "
48 "{:d} or UInt64 in vtk terminology).",
49 bc_mesh.
getName(),
sizeof(std::size_t));
53 "Found {:d} nodes for Dirichlet BCs for the variable {:d} and "
55 bc_mesh.
getNodes().size(), variable_id, component_id);
61 std::vector<MeshLib::Node*>
const& nodes_in_bc_mesh,
63 int const variable_id,
int const component_id,
const double t,
69 bc_values.
ids.clear();
73 bc_values.
ids.reserve(nodes_in_bc_mesh.size());
74 bc_values.
values.reserve(nodes_in_bc_mesh.size());
75 for (
auto const*
const node : nodes_in_bc_mesh)
77 auto const id = node->getID();
93 if (global_index >= 0)
97 bc_values.
ids.emplace_back(global_index);
98 bc_values.
values.emplace_back(parameter(t, pos).front());
Defines functions that are shared by DirichletBoundaryCondition and DirichletBoundaryConditionWithinT...
void DBUG(char const *fmt, Args const &... args)
Definition of the Mesh class.
Definition of the Node class.
Global vector based on Eigen vector.
std::vector< Node * > const & getNodes() const
Get the nodes-vector for the mesh.
std::size_t getID() const
Get id of the mesh.
const std::string getName() const
Get name of the mesh.
Properties & getProperties()
bool existsPropertyVector(std::string const &name) const
int getNumberOfVariables() const
GlobalIndexType getGlobalIndex(MeshLib::Location const &l, int const variable_id, int const component_id) const
int getNumberOfVariableComponents(int variable_id) const
static NUMLIB_EXPORT GlobalIndexType const nop
void setNodeID(std::size_t node_id)
void setCoordinates(MathLib::TemplatePoint< double, 3 > const &coordinates)
void getEssentialBCValuesLocal(ParameterLib::Parameter< double > const ¶meter, MeshLib::Mesh const &bc_mesh, std::vector< MeshLib::Node * > const &nodes_in_bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_boundary, int const variable_id, int const component_id, const double t, GlobalVector const &, NumLib::IndexValueVector< GlobalIndexType > &bc_values)
void checkParametersOfDirichletBoundaryCondition(MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id)
std::vector< IndexType > ids
std::vector< double > values