diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.cpp b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.cpp index e5d891b63d..20d9c27e5e 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.cpp +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/contact_repulsion.cpp @@ -10,20 +10,20 @@ RepulsionForce>>:: : RepulsionForce(self_contact_relation, "SelfRepulsionForce"), ForcePrior(particles_, "SelfRepulsionForce"), solid_(DynamicCast(this, sph_body_.getBaseMaterial())), - self_repulsion_density_(*particles_->getVariableDataByName("SelfRepulsionDensity")), + self_repulsion_factor_(*particles_->getVariableDataByName("SelfRepulsionFactor")), vel_(*particles_->getVariableDataByName("Velocity")), contact_impedance_(sqrt(solid_.ReferenceDensity() * solid_.ContactStiffness())) {} //=================================================================================================// void RepulsionForce>>::interaction(size_t index_i, Real dt) { - Real p_i = self_repulsion_density_[index_i] * solid_.ContactStiffness(); + Real p_i = self_repulsion_factor_[index_i] * solid_.ContactStiffness(); Vecd force = Vecd::Zero(); const Neighborhood &inner_neighborhood = inner_configuration_[index_i]; for (size_t n = 0; n != inner_neighborhood.current_size_; ++n) { size_t index_j = inner_neighborhood.j_[n]; const Vecd &e_ij = inner_neighborhood.e_ij_[n]; - Real p_star = 0.5 * (p_i + self_repulsion_density_[index_j] * solid_.ContactStiffness()); + Real p_star = 0.5 * (p_i + self_repulsion_factor_[index_j] * solid_.ContactStiffness()); Real impedance_p = 0.5 * contact_impedance_ * (vel_[index_i] - vel_[index_j]).dot(-e_ij); // force to mimic pressure force -= 2.0 * (p_star + impedance_p) * e_ij * inner_neighborhood.dW_ij_[n] * Vol_[index_j]; @@ -35,7 +35,7 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_contac : RepulsionForce(solid_body_contact_relation, "RepulsionForce"), ForcePrior(particles_, "RepulsionForce"), solid_(DynamicCast(this, sph_body_.getBaseMaterial())), - repulsion_density_(*particles_->getVariableDataByName("RepulsionDensity")) + repulsion_factor_(*particles_->getVariableDataByName("RepulsionFactor")) { const Real contact_stiffness_1 = solid_.ContactStiffness(); @@ -43,7 +43,7 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_contac { contact_solids_.push_back(&DynamicCast(this, contact_bodies_[k]->getBaseMaterial())); contact_Vol_.push_back(contact_particles_[k]->getVariableDataByName("VolumetricMeasure")); - contact_contact_density_.push_back(contact_particles_[k]->getVariableDataByName("RepulsionDensity")); + contact_repulsion_factor_.push_back(contact_particles_[k]->getVariableDataByName("RepulsionFactor")); const Real contact_stiffness_k = contact_solids_[k]->ContactStiffness(); contact_stiffness_ave_.push_back(2 * contact_stiffness_1 * contact_stiffness_k / (contact_stiffness_1 + contact_stiffness_k)); @@ -52,13 +52,13 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_contac //=================================================================================================// void RepulsionForce>::interaction(size_t index_i, Real dt) { - Real sigma_i = repulsion_density_[index_i]; + Real sigma_i = repulsion_factor_[index_i]; Vecd force = Vecd::Zero(); for (size_t k = 0; k < contact_configuration_.size(); ++k) { Vecd force_k = Vecd::Zero(); - StdLargeVec &contact_density_k = *(contact_contact_density_[k]); + StdLargeVec &contact_density_k = *(contact_repulsion_factor_[k]); StdLargeVec &Vol_k = *(contact_Vol_[k]); Neighborhood &contact_neighborhood = (*contact_configuration_[k])[index_i]; @@ -80,7 +80,7 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_co : RepulsionForce(solid_body_contact_relation, "RepulsionForce"), ForcePrior(particles_, "RepulsionForce"), solid_(DynamicCast(this, sph_body_.getBaseMaterial())), - repulsion_density_(*particles_->getVariableDataByName("RepulsionDensity")) + repulsion_factor_(*particles_->getVariableDataByName("RepulsionFactor")) { for (size_t k = 0; k < this->contact_configuration_.size(); ++k) { @@ -90,7 +90,7 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_co //=================================================================================================// void RepulsionForce>::interaction(size_t index_i, Real dt) { - Real p_i = repulsion_density_[index_i] * solid_.ContactStiffness(); + Real p_i = repulsion_factor_[index_i] * solid_.ContactStiffness(); /** Contact interaction. */ Vecd force = Vecd::Zero(); for (size_t k = 0; k < contact_configuration_.size(); ++k) @@ -117,7 +117,7 @@ RepulsionForce>::RepulsionForce(BaseContactRelation &solid_body_ { contact_solids_.push_back(&DynamicCast(this, contact_bodies_[k]->getBaseMaterial())); contact_Vol_.push_back(contact_particles_[k]->getVariableDataByName("VolumetricMeasure")); - contact_contact_density_.push_back(contact_particles_[k]->getVariableDataByName("RepulsionDensity")); + contact_repulsion_factor_.push_back(contact_particles_[k]->getVariableDataByName("RepulsionFactor")); } } //=================================================================================================// @@ -127,7 +127,7 @@ void RepulsionForce>::interaction(size_t index_i, Real dt) for (size_t k = 0; k < contact_configuration_.size(); ++k) { StdLargeVec &Vol_k = *(contact_Vol_[k]); - StdLargeVec &contact_density_k = *(contact_contact_density_[k]); + StdLargeVec &contact_density_k = *(contact_repulsion_factor_[k]); Solid *solid_k = contact_solids_[k]; Neighborhood &contact_neighborhood = (*contact_configuration_[k])[index_i]; 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 db6155f560..762e48da58 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 @@ -68,7 +68,7 @@ class RepulsionForce>> : public RepulsionForce &self_repulsion_density_; + StdLargeVec &self_repulsion_factor_; StdLargeVec &vel_; Real contact_impedance_; }; @@ -84,10 +84,10 @@ class RepulsionForce> : public RepulsionForce &repulsion_density_; + StdLargeVec &repulsion_factor_; StdVec contact_solids_; StdVec contact_stiffness_ave_; - StdVec *> contact_contact_density_, contact_Vol_; + StdVec *> contact_repulsion_factor_, contact_Vol_; }; using ContactForce = RepulsionForce>; @@ -101,7 +101,7 @@ class RepulsionForce> : public RepulsionForce &repulsion_density_; + StdLargeVec &repulsion_factor_; StdVec *> contact_Vol_; }; using ContactForceFromWall = RepulsionForce>; @@ -117,7 +117,7 @@ class RepulsionForce> : public RepulsionForce contact_solids_; - StdVec *> contact_contact_density_, contact_Vol_; + StdVec *> contact_repulsion_factor_, contact_Vol_; }; using ContactForceToWall = RepulsionForce>; } // namespace solid_dynamics diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.cpp b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.cpp index ff52379f6c..ef2746a3c0 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.cpp +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.cpp @@ -7,7 +7,7 @@ namespace solid_dynamics //=================================================================================================// RepulsionDensitySummation>:: RepulsionDensitySummation(SelfSurfaceContactRelation &self_contact_relation) - : RepulsionDensitySummation(self_contact_relation, "SelfRepulsionDensity") + : RepulsionDensitySummation(self_contact_relation, "SelfRepulsionFactor") { Real dp_1 = self_contact_relation.getSPHBody().sph_adaptation_->ReferenceSpacing(); offset_W_ij_ = self_contact_relation.getSPHBody().sph_adaptation_->getKernel()->W(dp_1, ZeroVecd); @@ -22,12 +22,12 @@ void RepulsionDensitySummation>::interaction(size_t index_i, Real dt) Real corrected_W_ij = std::max(inner_neighborhood.W_ij_[n] - offset_W_ij_, Real(0)); sigma += corrected_W_ij * particles_->ParticleVolume(inner_neighborhood.j_[n]); } - repulsion_density_[index_i] = sigma; + repulsion_factor_[index_i] = sigma; } //=================================================================================================// RepulsionDensitySummation>:: RepulsionDensitySummation(SurfaceContactRelation &solid_body_contact_relation) - : RepulsionDensitySummation(solid_body_contact_relation, "RepulsionDensity") + : RepulsionDensitySummation(solid_body_contact_relation, "RepulsionFactor") { } //=================================================================================================// @@ -44,11 +44,11 @@ void RepulsionDensitySummation>::interaction(size_t index_i, Real dt) sigma += contact_neighborhood.W_ij_[n] * contact_particles_[k]->ParticleVolume(contact_neighborhood.j_[n]); } } - repulsion_density_[index_i] = sigma; + repulsion_factor_[index_i] = sigma; }; //=================================================================================================// ShellContactDensity::ShellContactDensity(ShellSurfaceContactRelation &solid_body_contact_relation) - : RepulsionDensitySummation(solid_body_contact_relation, "RepulsionDensity"), + : RepulsionDensitySummation(solid_body_contact_relation, "RepulsionFactor"), solid_(DynamicCast(this, sph_body_.getBaseMaterial())), kernel_(solid_body_contact_relation.getSPHBody().sph_adaptation_->getKernel()), particle_spacing_(solid_body_contact_relation.getSPHBody().sph_adaptation_->ReferenceSpacing()) @@ -97,11 +97,11 @@ void ShellContactDensity::interaction(size_t index_i, Real dt) // to maintain enough contact pressure to prevent penetration while also maintaining stability. contact_density_i += heuristic_limiter * sigma * calibration_factor_[k]; } - repulsion_density_[index_i] = contact_density_i; + repulsion_factor_[index_i] = contact_density_i; } //=================================================================================================// ShellSelfContactDensitySummation::ShellSelfContactDensitySummation(ShellSelfContactRelation &self_contact_relation) - : RepulsionDensitySummation(self_contact_relation, "SelfRepulsionDensity") + : RepulsionDensitySummation(self_contact_relation, "SelfRepulsionFactor") { } //=================================================================================================// @@ -111,7 +111,7 @@ void ShellSelfContactDensitySummation::interaction(size_t index_i, Real dt) const Neighborhood &inner_neighborhood = inner_configuration_[index_i]; for (size_t n = 0; n != inner_neighborhood.current_size_; ++n) sigma += inner_neighborhood.W_ij_[n] * particles_->ParticleVolume(inner_neighborhood.j_[n]); - repulsion_density_[index_i] = sigma; + repulsion_factor_[index_i] = sigma; } //=================================================================================================// } // namespace solid_dynamics diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.h b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.h index 6317886e28..b348e318c6 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.h +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics/repulsion_density_summation.h @@ -48,11 +48,11 @@ class RepulsionDensitySummation template RepulsionDensitySummation(BaseRelationType &base_relation, const std::string &variable_name) : LocalDynamics(base_relation.getSPHBody()), DataDelegationType(base_relation), - repulsion_density_(*this->particles_->template registerSharedVariable(variable_name)){}; + repulsion_factor_(*this->particles_->template registerSharedVariable(variable_name)){}; virtual ~RepulsionDensitySummation(){}; protected: - StdLargeVec &repulsion_density_; + StdLargeVec &repulsion_factor_; }; template <> diff --git a/tests/2d_examples/test_2d_self_contact/self_contact.cpp b/tests/2d_examples/test_2d_self_contact/self_contact.cpp index 7ba8bcc9c5..02eac17fcb 100644 --- a/tests/2d_examples/test_2d_self_contact/self_contact.cpp +++ b/tests/2d_examples/test_2d_self_contact/self_contact.cpp @@ -158,7 +158,7 @@ int main(int ac, char *av[]) //----------------------------------------------------------------------------- IOEnvironment io_environment(sph_system); BodyStatesRecordingToVtp write_beam_states(beam_body); - write_beam_states.addToWrite(beam_body, "SelfRepulsionDensity"); + write_beam_states.addToWrite(beam_body, "SelfRepulsionFactor"); RegressionTestDynamicTimeWarping> write_beam_tip_displacement("Position", beam_observer_contact); //-----------------------------------------------------------------------------