41 std::unique_ptr<VariantMap> m_params;
42 std::weak_ptr<::System::System const> m_system;
49 m_constraint->bind_system(
system);
52 {
"penetrable", m_constraint->penetrable()},
57 [
this]() {
return m_constraint->type(); }},
63 m_constraint->set_shape(m_shape->shape());
66 [
this]() {
return m_shape; }},
67 {
"particle_velocity", m_constraint->velocity()}});
71 if (
name ==
"total_force") {
74 if (
name ==
"min_dist") {
75 auto const system = m_system.lock();
78 *
system->box_geo,
system->cell_structure->local_particles());
80 if (
name ==
"total_normal_force") {
87 std::shared_ptr<::Constraints::Constraint>
constraint()
override {
88 return std::static_pointer_cast<::Constraints::Constraint>(m_constraint);
90 std::shared_ptr<const ::Constraints::Constraint>
constraint()
const override {
91 return std::static_pointer_cast<::Constraints::Constraint>(m_constraint);
93 std::shared_ptr<::Constraints::ShapeBasedConstraint>
99 m_params = std::make_unique<VariantMap>(
params);
100 for (
auto const &[
name, value] : *m_params) {
111 for (
auto const &[
name, value] : *m_params) {
119 std::shared_ptr<::Constraints::ShapeBasedConstraint> m_constraint;
122 std::shared_ptr<Shapes::Shape> m_shape;
void do_set_parameter(const std::string &name, const Variant &value) final
void add_parameters(std::vector< AutoParameter > &¶ms)
std::shared_ptr< const ::Constraints::Constraint > constraint() const override
std::shared_ptr<::Constraints::ShapeBasedConstraint > shape_based_constraint() const
void bind_system(std::shared_ptr<::System::System const > const &system) override
Variant do_call_method(std::string const &name, VariantMap const &) override
void do_construct(VariantMap const ¶ms) override
std::shared_ptr<::Constraints::Constraint > constraint() override
std::string_view name() const
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
std::unordered_map< std::string, Variant > VariantMap
constexpr const None none
None-"literal".
static SteepestDescentParameters params
Currently active steepest descent instance.
Recursive variant implementation.