From ded0de83a3fef5b7304197c4e50c76f8065ca83c Mon Sep 17 00:00:00 2001 From: Xiangyu Hu Date: Mon, 29 Jul 2024 20:42:26 +0000 Subject: [PATCH] all compiled, to test --- .../general_dynamics/force_prior.hpp | 12 ++++++------ .../contact_dynamics/contact_repulsion.h | 2 +- .../solid_dynamics/fluid_structure_interaction.h | 4 ++-- .../solid_dynamics/loading_dynamics.cpp | 12 ++++++------ .../solid_dynamics/loading_dynamics.h | 5 ++--- 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/shared/particle_dynamics/general_dynamics/force_prior.hpp b/src/shared/particle_dynamics/general_dynamics/force_prior.hpp index ad47079049..952b89f2cc 100644 --- a/src/shared/particle_dynamics/general_dynamics/force_prior.hpp +++ b/src/shared/particle_dynamics/general_dynamics/force_prior.hpp @@ -10,12 +10,12 @@ template BaseForcePrior:: BaseForcePrior(DynamicsIdentifier &identifier, const std::string &force_name) : BaseLocalDynamics(identifier), - force_prior_(base_particles->registerSharedVariable("ForcePrior")), - current_force_(base_particles->registerSharedVariable(force_name)), - previous_force_(base_particles->registerSharedVariable("Previous" + force_name)) + force_prior_(this->particles_->template registerSharedVariable("ForcePrior")), + current_force_(this->particles_->template registerSharedVariable(force_name)), + previous_force_(this->particles_->template registerSharedVariable("Previous" + force_name)) { - base_particles->addVariableToRestart("Previous" + force_name); - base_particles->addVariableToSort("Previous" + force_name); + this->particles_->template addVariableToRestart("Previous" + force_name); + this->particles_->template addVariableToSort("Previous" + force_name); } //=================================================================================================// template @@ -27,7 +27,7 @@ void BaseForcePrior::update(size_t index_i, Real dt) //=================================================================================================// template GravityForce::GravityForce(SPHBody &sph_body, const GravityType &gravity) - : ForcePrior(particles_, "GravityForce"), gravity_(gravity), + : ForcePrior(sph_body, "GravityForce"), gravity_(gravity), pos_(particles_->getVariableDataByName("Position")), mass_(particles_->registerSharedVariable("Mass")), physical_time_(sph_system_.getSystemVariableDataByName("PhysicalTime")) {} diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.h b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.h index 673f0034d7..0cac69c04f 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.h +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.h @@ -31,7 +31,7 @@ #define CONTACT_REPULSION_H #include "base_contact_dynamics.h" -#include "force_prior.h" +#include "force_prior.hpp" namespace SPH { diff --git a/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h b/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h index d74be10ed1..dc20853920 100644 --- a/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h +++ b/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h @@ -32,7 +32,7 @@ #include "all_particle_dynamics.h" #include "base_material.h" #include "elastic_dynamics.h" -#include "force_prior.h" +#include "force_prior.hpp" #include "riemann_solver.h" namespace SPH @@ -43,7 +43,7 @@ namespace solid_dynamics * @class BaseForceFromFluid * @brief Base class for computing the forces from the fluid */ -class BaseForceFromFluid : public ForcePrior, public DataDelegateContact, +class BaseForceFromFluid : public ForcePrior, public DataDelegateContact { public: explicit BaseForceFromFluid(BaseContactRelation &contact_relation, const std::string &force_name); diff --git a/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.cpp b/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.cpp index 647f456ac1..fa188207fa 100644 --- a/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.cpp +++ b/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.cpp @@ -46,7 +46,7 @@ void SpringDamperConstraintParticleWise::update(size_t index_i, Real dt) Vecd delta_x = pos_[index_i] - pos0_[index_i]; loading_force_[index_i] = getSpringForce(index_i, delta_x) * mass_[index_i] + getDampingForce(index_i) * mass_[index_i]; - ForcePrior::update(index_i, dt); + LoadingForce::update(index_i, dt); } //=================================================================================================// SpringNormalOnSurfaceParticles:: @@ -116,7 +116,7 @@ void SpringNormalOnSurfaceParticles::update(size_t index_i, Real dt) Vecd delta_x = pos_[index_i] - pos0_[index_i]; loading_force_[index_i] = getSpringForce(index_i, delta_x) + getDampingForce(index_i); - ForcePrior::update(index_i, dt); + LoadingForce::update(index_i, dt); } } //=================================================================================================// @@ -172,7 +172,7 @@ void ExternalForceInBoundingBox::update(size_t index_i, Real dt) if (bounding_box_.checkContain(pos_[index_i])) { loading_force_[index_i] = acceleration_ * mass_[index_i]; - ForcePrior::update(index_i, dt); + LoadingForce::update(index_i, dt); } } //=================================================================================================// @@ -194,7 +194,7 @@ void ForceInBodyRegion::update(size_t index_i, Real dt) { Real time_factor = SMIN(*physical_time_ / end_time_, Real(1.0)); loading_force_[index_i] = force_vector_ * time_factor; - ForcePrior::update(index_i, dt); + BaseLoadingForce::update(index_i, dt); } //=================================================================================================// SurfacePressureFromSource:: @@ -261,7 +261,7 @@ void SurfacePressureFromSource::update(size_t index_i, Real dt) // vector is made by multiplying it with the surface normal // add the force to the particle loading_force_[index_i] = mass_[index_i] * (-1.0) * n_[index_i] * acc_from_pressure; - ForcePrior::update(index_i, dt); + BaseLoadingForce::update(index_i, dt); } } //=================================================================================================// @@ -274,7 +274,7 @@ PressureForceOnShell::PressureForceOnShell(SPHBody &sph_body, Real pressure) void PressureForceOnShell::update(size_t index_i, Real dt) { loading_force_[index_i] = -pressure_ * Vol_[index_i] * n_[index_i]; - ForcePrior::update(index_i, dt); + LoadingForce::update(index_i, dt); } //=================================================================================================// } // namespace solid_dynamics diff --git a/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.h b/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.h index 40b7ceeb73..20da392680 100644 --- a/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.h +++ b/src/shared/particle_dynamics/solid_dynamics/loading_dynamics.h @@ -35,7 +35,7 @@ #include "base_general_dynamics.h" #include "base_kernel.h" #include "elastic_solid.h" -#include "force_prior.h" +#include "force_prior.hpp" #include "solid_body.h" namespace SPH @@ -47,8 +47,7 @@ class BaseLoadingForce : public BaseForcePrior { public: BaseLoadingForce(DynamicsIdentifier &identifier, const std::string &loading_force_name) - : BaseLocalDynamics(identifier), - BaseForcePrior(identifier, loading_force_name), + : BaseForcePrior(identifier, loading_force_name), loading_force_(this->particles_->template getVariableDataByName(loading_force_name)){}; virtual ~BaseLoadingForce(){};