47 int const variable_id,
int const component_id,
48 MeshLib::Mesh const& bc_mesh,
unsigned const integration_order,
49 MeshLib::Mesh const& bulk_mesh,
double const constraint_threshold,
51 std::function<Eigen::Vector3d(std::size_t
const,
53 std::vector<GlobalVector*>
const&)>
56 void preTimestep(
double const t, std::vector<GlobalVector*>
const& x,
57 int const process_id)
override;
83 std::vector<std::pair<std::size_t, unsigned>>
_bulk_ids;
89 std::vector<std::unique_ptr<
110 std::vector<GlobalVector*>
const&)>
128std::unique_ptr<ConstraintDirichletBoundaryCondition>
133 unsigned const integration_order,
int const component_id,
134 std::vector<std::unique_ptr<ParameterLib::ParameterBase>>
const& parameters,
135 Process const& constraining_process);
MathLib::EigenVector GlobalVector
ParameterLib::Parameter< double > const & _parameter
void getEssentialBCValues(const double t, const GlobalVector &x, NumLib::IndexValueVector< GlobalIndexType > &bc_values) const override
Writes the values of essential BCs to bc_values.
double const _constraint_threshold
std::function< Eigen::Vector3d(std::size_t const, MathLib::Point3d const &, double const, std::vector< GlobalVector * > const &)> _getFlux
The function _getFlux calculates the flux through the boundary element.
std::vector< std::unique_ptr< ConstraintDirichletBoundaryConditionLocalAssemblerInterface > > _local_assemblers
Local assemblers for each boundary element.
std::unique_ptr< NumLib::LocalToGlobalIndexMap > _dof_table_boundary
void preTimestep(double const t, std::vector< GlobalVector * > const &x, int const process_id) override
MeshLib::Mesh const & _bc_mesh
MeshLib::Mesh const & _bulk_mesh
std::vector< std::pair< std::size_t, unsigned > > _bulk_ids
std::vector< double > _flux_values
Stores the results of the flux computations per boundary element.
ConstraintDirichletBoundaryCondition(ParameterLib::Parameter< double > const ¶meter, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, int const component_id, MeshLib::Mesh const &bc_mesh, unsigned const integration_order, MeshLib::Mesh const &bulk_mesh, double const constraint_threshold, bool const lower, std::function< Eigen::Vector3d(std::size_t const, MathLib::Point3d const &, double const, std::vector< GlobalVector * > const &)> getFlux)
unsigned const _integration_order
Integration order for integration over the lower-dimensional elements.
std::unique_ptr< ConstraintDirichletBoundaryCondition > createConstraintDirichletBoundaryCondition(ConstraintDirichletBoundaryConditionConfig const &config, MeshLib::Mesh const &bc_mesh, NumLib::LocalToGlobalIndexMap const &dof_table_bulk, int const variable_id, unsigned const integration_order, int const component_id, std::vector< std::unique_ptr< ParameterLib::ParameterBase > > const ¶meters, Process const &constraining_process)
ConstraintDirichletBoundaryConditionConfig parseConstraintDirichletBoundaryCondition(BaseLib::ConfigTree const &config)
std::string parameter_name
std::string constraining_process_variable
std::string constraint_direction
std::string constraint_type
double constraint_threshold