From 6f3d5a090b10efe6818b12db22c25745d5bb91d7 Mon Sep 17 00:00:00 2001 From: xiangyu_hu Date: Wed, 26 Jul 2023 21:39:34 +0200 Subject: [PATCH 1/4] fix bugs, may be still other bugs, please test it. --- .../fluid_dynamics/fluid_dynamics_inner.cpp | 8 +++++--- .../test_2d_square_droplet/src/droplet.cpp | 12 ++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_inner.cpp b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_inner.cpp index 91e45cb0e6..db6c606b90 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_inner.cpp +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_inner.cpp @@ -59,8 +59,8 @@ TransportVelocityCorrectionInnerAdaptive:: //=================================================================================================// AcousticTimeStepSize::AcousticTimeStepSize(SPHBody &sph_body, Real acousticCFL) : LocalDynamicsReduce(sph_body, Real(0)), - FluidDataSimple(sph_body), fluid_(DynamicCast(this, particles_->getBaseMaterial())), rho_(particles_->rho_), - p_(*particles_->getVariableByName("Pressure")), vel_(particles_->vel_), + FluidDataSimple(sph_body), fluid_(DynamicCast(this, particles_->getBaseMaterial())), + rho_(particles_->rho_), p_(*particles_->getVariableByName("Pressure")), vel_(particles_->vel_), smoothing_length_min_(sph_body.sph_adaptation_->MinimumSmoothingLength()), acousticCFL_(acousticCFL) {} //=================================================================================================// @@ -118,7 +118,9 @@ VorticityInner::VorticityInner(BaseInnerRelation &inner_relation) BaseIntegration::BaseIntegration(BaseInnerRelation &inner_relation) : LocalDynamics(inner_relation.getSPHBody()), FluidDataInner(inner_relation), fluid_(DynamicCast(this, particles_->getBaseMaterial())), rho_(particles_->rho_), - p_(*particles_->getVariableByName("Pressure")), drho_dt_(*particles_->registerSharedVariable("DensityChangeRate")), pos_(particles_->pos_), vel_(particles_->vel_), + p_(*particles_->getVariableByName("Pressure")), + drho_dt_(*particles_->registerSharedVariable("DensityChangeRate")), + pos_(particles_->pos_), vel_(particles_->vel_), acc_(particles_->acc_), acc_prior_(particles_->acc_prior_) {} //=================================================================================================// Oldroyd_BIntegration1stHalf :: diff --git a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp index 73220cbfa9..a2400a7c2e 100644 --- a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp +++ b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp @@ -142,8 +142,8 @@ int main() SimpleDynamics initialize_a_air_step(air_block); SimpleDynamics wall_boundary_normal_direction(wall_boundary); /** Evaluation of density by summation approach. */ - InteractionWithUpdate - update_water_density_by_summation(water_wall_contact, water_air_complex.getInnerRelation()); + InteractionWithUpdate + update_water_density_by_summation(water_wall_contact, water_air_complex); InteractionWithUpdate update_air_density_by_summation(air_wall_contact, air_water_complex); InteractionDynamics @@ -155,10 +155,10 @@ int main() ReduceDynamics get_water_time_step_size(water_block); ReduceDynamics get_air_time_step_size(air_block); /** Pressure relaxation for water by using position verlet time stepping. */ - Dynamics1Level - water_pressure_relaxation(water_wall_contact, water_air_complex.getInnerRelation()); - Dynamics1Level - water_density_relaxation(water_wall_contact, water_air_complex.getInnerRelation()); + Dynamics1Level + water_pressure_relaxation(water_wall_contact, water_air_complex); + Dynamics1Level + water_density_relaxation(water_wall_contact, water_air_complex); /** Extend Pressure relaxation is used for air. */ Dynamics1Level air_pressure_relaxation(air_wall_contact, air_water_complex, 2.0); From 12f059367816573366fceadba6640e217f82dbef Mon Sep 17 00:00:00 2001 From: xiangyu_hu Date: Sat, 29 Jul 2023 20:14:08 +0200 Subject: [PATCH 2/4] found a bug in multiphase viscous acceleration --- .../fluid_dynamics_multi_phase.cpp | 3 ++- .../fluid_dynamics_multi_phase.h | 2 +- .../fluid_dynamics_multi_phase.hpp | 22 +++++-------------- .../test_2d_square_droplet/src/droplet.cpp | 2 +- 4 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp index c4d93b4109..a47f993da1 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp @@ -19,7 +19,8 @@ ViscousAccelerationMultiPhase::ViscousAccelerationMultiPhase(BaseInnerRelation & for (size_t k = 0; k != contact_particles_.size(); ++k) { - contact_fluids_.push_back(DynamicCast(this, &contact_particles_[k]->getBaseMaterial())); + Real mu_k = DynamicCast(this, &contact_particles_[k]->getBaseMaterial())->ReferenceViscosity(); + contact_mu_.push_back(Real(2) * (mu_ * mu_k) / (mu_ + mu_k)); contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); } } diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h index 28f9542b08..2838487455 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h @@ -54,7 +54,7 @@ class ViscousAccelerationMultiPhase : public ViscousAccelerationInner, public Mu inline void interaction(size_t index_i, Real dt = 0.0); protected: - StdVec contact_fluids_; + StdVec contact_mu_; StdVec *> contact_vel_n_; }; using ViscousAccelerationMultiPhaseWithWall = diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp index fd10477df2..c62d8fc1e1 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp @@ -14,35 +14,25 @@ namespace SPH namespace fluid_dynamics { //=================================================================================================// -void ViscousAccelerationMultiPhase:: - interaction(size_t index_i, Real dt) +void ViscousAccelerationMultiPhase::interaction(size_t index_i, Real dt) { ViscousAccelerationInner::interaction(index_i, dt); - Real rho_i = this->rho_[index_i]; - const Vecd &vel_i = this->vel_[index_i]; - Vecd acceleration = Vecd::Zero(); - Vecd vel_derivative = Vecd::Zero(); for (size_t k = 0; k < this->contact_configuration_.size(); ++k) { - Real mu_j = this->contact_fluids_[k]->ReferenceViscosity(); + Real contact_mu_k = this->contact_mu_[k]; StdLargeVec &vel_k = *(this->contact_vel_n_[k]); Neighborhood &contact_neighborhood = (*this->contact_configuration_[k])[index_i]; for (size_t n = 0; n != contact_neighborhood.current_size_; ++n) { size_t index_j = contact_neighborhood.j_[n]; - Real r_ij = contact_neighborhood.r_ij_[n]; - - vel_derivative = 2.0 * (vel_i - vel_k[index_j]) / - (r_ij + 0.01 * this->smoothing_length_); - Real mu_ij = 2.0 * this->mu_ * mu_j / (this->mu_ + mu_j); - acceleration += 2.0 * mu_ij * vel_derivative * - contact_neighborhood.dW_ijV_j_[n] / rho_i; + Vecd vel_derivative = (this->vel_[index_i] - vel_k[index_j]) / + (contact_neighborhood.r_ij_[n] + 0.01 * this->smoothing_length_); + acceleration += 2.0 * contact_mu_k * vel_derivative * contact_neighborhood.dW_ijV_j_[n]; } } - - acc_prior_[index_i] += acceleration; + acc_prior_[index_i] += acceleration / this->rho_[index_i]; } //=================================================================================================// void MultiPhaseColorFunctionGradient:: diff --git a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp index a2400a7c2e..2bd442f5ad 100644 --- a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp +++ b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp @@ -24,7 +24,7 @@ Real rho0_a = 0.001; /**< Reference density of air. */ Real U_max = 1.0; /**< Characteristic velocity. */ Real c_f = 10.0 * U_max; /**< Reference sound speed. */ Real mu_f = 0.2; /**< Water viscosity. */ -Real mu_a = 0.0002; /**< Air viscosity. */ +Real mu_a = 0.002; /**< Air viscosity. */ //---------------------------------------------------------------------- // Geometric shapes used in this case. //---------------------------------------------------------------------- From 0100028639ed90bfa4423ee560b8375f725b4edf Mon Sep 17 00:00:00 2001 From: xiangyu_hu Date: Sat, 29 Jul 2023 20:47:27 +0200 Subject: [PATCH 3/4] revise wetting case too --- .../test_2d_square_droplet/src/droplet.cpp | 2 +- .../test_2d_wetting_effects/src/wetting.cpp | 15 +++++++-------- .../test_2d_wetting_effects/src/wetting.h | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp index 2bd442f5ad..97a5bd1a53 100644 --- a/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp +++ b/tests/2d_examples/test_2d_square_droplet/src/droplet.cpp @@ -147,7 +147,7 @@ int main() InteractionWithUpdate update_air_density_by_summation(air_wall_contact, air_water_complex); InteractionDynamics - air_transport_correction(air_wall_contact, air_water_complex); + air_transport_correction(air_wall_contact, air_water_complex, 0.05); /** Time step size without considering sound wave speed. */ ReduceDynamics get_water_advection_time_step_size(water_block, U_max); ReduceDynamics get_air_advection_time_step_size(air_block, U_max); diff --git a/tests/2d_examples/test_2d_wetting_effects/src/wetting.cpp b/tests/2d_examples/test_2d_wetting_effects/src/wetting.cpp index ef8c6b3c3d..f243dca35f 100644 --- a/tests/2d_examples/test_2d_wetting_effects/src/wetting.cpp +++ b/tests/2d_examples/test_2d_wetting_effects/src/wetting.cpp @@ -49,13 +49,13 @@ int main() SimpleDynamics initialize_a_water_step(water_block); SimpleDynamics initialize_a_air_step(air_block); /** Evaluation of density by summation approach. */ - InteractionWithUpdate - update_water_density_by_summation(water_wall_contact, water_air_complex.getInnerRelation()); + InteractionWithUpdate + update_water_density_by_summation(water_wall_contact, water_air_complex); InteractionWithUpdate update_air_density_by_summation(air_wall_contact, air_water_complex); /** transport formulation for regularizing particle distribution. */ InteractionDynamics - air_transport_correction(air_wall_contact, air_water_complex); + air_transport_correction(air_wall_contact, air_water_complex, 0.05); /** Time step size without considering sound wave speed. */ ReduceDynamics get_water_advection_time_step_size(water_block, U_max); ReduceDynamics get_air_advection_time_step_size(air_block, U_max); @@ -63,10 +63,10 @@ int main() ReduceDynamics get_water_time_step_size(water_block); ReduceDynamics get_air_time_step_size(air_block); /** Pressure relaxation for water by using position verlet time stepping. */ - Dynamics1Level - water_pressure_relaxation(water_wall_contact, water_air_complex.getInnerRelation()); - Dynamics1Level - water_density_relaxation(water_wall_contact, water_air_complex.getInnerRelation()); + Dynamics1Level + water_pressure_relaxation(water_wall_contact, water_air_complex); + Dynamics1Level + water_density_relaxation(water_wall_contact, water_air_complex); /** Extend Pressure relaxation is used for air. */ Dynamics1Level air_pressure_relaxation(air_wall_contact, air_water_complex, 2.0); @@ -135,7 +135,6 @@ int main() update_water_density_by_summation.exec(); update_air_density_by_summation.exec(); air_transport_correction.exec(); - air_viscous_acceleration.exec(); water_viscous_acceleration.exec(); diff --git a/tests/2d_examples/test_2d_wetting_effects/src/wetting.h b/tests/2d_examples/test_2d_wetting_effects/src/wetting.h index ee97869af3..d867067f96 100644 --- a/tests/2d_examples/test_2d_wetting_effects/src/wetting.h +++ b/tests/2d_examples/test_2d_wetting_effects/src/wetting.h @@ -22,7 +22,7 @@ Real rho0_a = 1.0e-3; /**< Reference density of air. Real U_max = 1.0; /**< Characteristic velocity. */ Real c_f = 10.0 * U_max; /**< Reference sound speed. */ Real mu_f = 5.0e-2; /**< Water viscosity. */ -Real mu_a = 5.0e-5; /**< Air viscosity. */ +Real mu_a = 5.0e-4; /**< Air viscosity. */ Real contact_angle = (150.0 / 180.0) * 3.1415926; /**< Contact angle with Wall. */ Real tension_force = 0.008; //---------------------------------------------------------------------- From 5c1569818171e83ca0a7245666605510bc5452c3 Mon Sep 17 00:00:00 2001 From: Xiangyu Hu Date: Sat, 29 Jul 2023 20:51:08 +0200 Subject: [PATCH 4/4] naming of velocity --- .../fluid_dynamics/fluid_dynamics_multi_phase.cpp | 2 +- .../fluid_dynamics/fluid_dynamics_multi_phase.h | 4 ++-- .../fluid_dynamics/fluid_dynamics_multi_phase.hpp | 6 +++--- .../solid_dynamics/contact_dynamics.cpp | 2 +- .../solid_dynamics/contact_dynamics.h | 4 ++-- .../solid_dynamics/fluid_structure_interaction.cpp | 2 +- .../solid_dynamics/fluid_structure_interaction.h | 10 +++++----- .../test_3d_roof_parametric_cvt.cpp | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp index a47f993da1..f61e73d53f 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.cpp @@ -21,7 +21,7 @@ ViscousAccelerationMultiPhase::ViscousAccelerationMultiPhase(BaseInnerRelation & { Real mu_k = DynamicCast(this, &contact_particles_[k]->getBaseMaterial())->ReferenceViscosity(); contact_mu_.push_back(Real(2) * (mu_ * mu_k) / (mu_ + mu_k)); - contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); + contact_vel_.push_back(&(contact_particles_[k]->vel_)); } } //=================================================================================================// diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h index 2838487455..4701c401d7 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.h @@ -55,7 +55,7 @@ class ViscousAccelerationMultiPhase : public ViscousAccelerationInner, public Mu protected: StdVec contact_mu_; - StdVec *> contact_vel_n_; + StdVec *> contact_vel_; }; using ViscousAccelerationMultiPhaseWithWall = BaseViscousAccelerationWithWall; @@ -75,7 +75,7 @@ class RelaxationMultiPhase : public RelaxationInnerType, public MultiPhaseContac protected: StdVec contact_fluids_; StdVec *> contact_p_, contact_rho_n_; - StdVec *> contact_vel_n_; + StdVec *> contact_vel_; }; /** diff --git a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp index c62d8fc1e1..a9798af3e4 100644 --- a/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp +++ b/src/shared/particle_dynamics/fluid_dynamics/fluid_dynamics_multi_phase.hpp @@ -22,7 +22,7 @@ void ViscousAccelerationMultiPhase::interaction(size_t index_i, Real dt) for (size_t k = 0; k < this->contact_configuration_.size(); ++k) { Real contact_mu_k = this->contact_mu_[k]; - StdLargeVec &vel_k = *(this->contact_vel_n_[k]); + StdLargeVec &vel_k = *(this->contact_vel_[k]); Neighborhood &contact_neighborhood = (*this->contact_configuration_[k])[index_i]; for (size_t n = 0; n != contact_neighborhood.current_size_; ++n) { @@ -80,7 +80,7 @@ RelaxationMultiPhase:: contact_fluids_.push_back(DynamicCast(this, &contact_particles_[k]->getBaseMaterial())); contact_p_.push_back(contact_particles_[k]->template getVariableByName("Pressure")); contact_rho_n_.push_back(&(contact_particles_[k]->rho_)); - contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); + contact_vel_.push_back(&(contact_particles_[k]->vel_)); } } //=================================================================================================// @@ -180,7 +180,7 @@ void BaseMultiPhaseIntegration2ndHalf:: Vecd p_dissipation = Vecd::Zero(); for (size_t k = 0; k < this->contact_configuration_.size(); ++k) { - StdLargeVec &vel_k = *(this->contact_vel_n_[k]); + StdLargeVec &vel_k = *(this->contact_vel_[k]); CurrentRiemannSolver &riemann_solver_k = riemann_solvers_[k]; Neighborhood &contact_neighborhood = (*this->contact_configuration_[k])[index_i]; for (size_t n = 0; n != contact_neighborhood.current_size_; ++n) diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.cpp b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.cpp index 7a607efc1c..bde81f1c10 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.cpp +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.cpp @@ -147,7 +147,7 @@ DynamicContactForceWithWall:: reference_pressure_ = solid_.ReferenceDensity() * solid_.ContactStiffness(); for (size_t k = 0; k != contact_particles_.size(); ++k) { - contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); + contact_vel_.push_back(&(contact_particles_[k]->vel_)); contact_n_.push_back(&(contact_particles_[k]->n_)); } } diff --git a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.h b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.h index ad773a932f..8f5f17962d 100644 --- a/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.h +++ b/src/shared/particle_dynamics/solid_dynamics/contact_dynamics.h @@ -409,7 +409,7 @@ class DynamicContactForceWithWall : public LocalDynamics, public ContactDynamics particle_spacing_ratio2 *= 0.1 * particle_spacing_ratio2; StdLargeVec &n_k = *(contact_n_[k]); - StdLargeVec &vel_n_k = *(contact_vel_n_[k]); + StdLargeVec &vel_n_k = *(contact_vel_[k]); Neighborhood &contact_neighborhood = (*contact_configuration_[k])[index_i]; for (size_t n = 0; n != contact_neighborhood.current_size_; ++n) @@ -437,7 +437,7 @@ class DynamicContactForceWithWall : public LocalDynamics, public ContactDynamics Solid &solid_; StdLargeVec &Vol_, &mass_; StdLargeVec &vel_, &acc_prior_; - StdVec *> contact_vel_n_, contact_n_; + StdVec *> contact_vel_, contact_n_; Real penalty_strength_; Real impedance_, reference_pressure_; }; diff --git a/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.cpp b/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.cpp index c89a16f4dd..4d845117eb 100644 --- a/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.cpp +++ b/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.cpp @@ -22,7 +22,7 @@ ViscousForceFromFluid::ViscousForceFromFluid(BaseContactRelation &contact_relati particles_->registerVariable(force_from_fluid_, "ViscousForceFromFluid"); for (size_t k = 0; k != contact_particles_.size(); ++k) { - contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); + contact_vel_.push_back(&(contact_particles_[k]->vel_)); mu_.push_back(contact_fluids_[k]->ReferenceViscosity()); smoothing_length_.push_back(contact_bodies_[k]->sph_adaptation_->ReferenceSmoothingLength()); } 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 3944d9dfa6..7c7631e74e 100644 --- a/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h +++ b/src/shared/particle_dynamics/solid_dynamics/fluid_structure_interaction.h @@ -80,7 +80,7 @@ class ViscousForceFromFluid : public BaseForceFromFluid { Real mu_k = mu_[k]; Real smoothing_length_k = smoothing_length_[k]; - StdLargeVec &vel_n_k = *(contact_vel_n_[k]); + StdLargeVec &vel_n_k = *(contact_vel_[k]); Neighborhood &contact_neighborhood = (*contact_configuration_[k])[index_i]; for (size_t n = 0; n != contact_neighborhood.current_size_; ++n) { @@ -98,7 +98,7 @@ class ViscousForceFromFluid : public BaseForceFromFluid protected: StdLargeVec &vel_ave_; - StdVec *> contact_vel_n_; + StdVec *> contact_vel_; StdVec mu_; StdVec smoothing_length_; }; @@ -128,7 +128,7 @@ class BasePressureForceAccelerationFromFluid : public BaseForceFromFluid { StdLargeVec &rho_n_k = *(contact_rho_n_[k]); StdLargeVec &p_k = *(contact_p_[k]); - StdLargeVec &vel_k = *(contact_vel_n_[k]); + StdLargeVec &vel_k = *(contact_vel_[k]); StdLargeVec &acc_prior_k = *(contact_acc_prior_[k]); RiemannSolverType &riemann_solvers_k = riemann_solvers_[k]; Neighborhood &contact_neighborhood = (*contact_configuration_[k])[index_i]; @@ -150,7 +150,7 @@ class BasePressureForceAccelerationFromFluid : public BaseForceFromFluid protected: StdLargeVec &vel_ave_, &acc_prior_, &acc_ave_, &n_; StdVec *> contact_rho_n_, contact_p_; - StdVec *> contact_vel_n_, contact_acc_prior_; + StdVec *> contact_vel_, contact_acc_prior_; StdVec riemann_solvers_; BasePressureForceAccelerationFromFluid(bool mostDerived, BaseContactRelation &contact_relation) @@ -162,7 +162,7 @@ class BasePressureForceAccelerationFromFluid : public BaseForceFromFluid for (size_t k = 0; k != contact_particles_.size(); ++k) { contact_rho_n_.push_back(&(contact_particles_[k]->rho_)); - contact_vel_n_.push_back(&(contact_particles_[k]->vel_)); + contact_vel_.push_back(&(contact_particles_[k]->vel_)); contact_p_.push_back(contact_particles_[k]->template getVariableByName("Pressure")); contact_acc_prior_.push_back(&(contact_particles_[k]->acc_prior_)); riemann_solvers_.push_back(RiemannSolverType(*contact_fluids_[k], *contact_fluids_[k])); diff --git a/tests/3d_examples/test_3d_roof_parametric_cvt/test_3d_roof_parametric_cvt.cpp b/tests/3d_examples/test_3d_roof_parametric_cvt/test_3d_roof_parametric_cvt.cpp index 3ec6126d6b..9f4d502d18 100644 --- a/tests/3d_examples/test_3d_roof_parametric_cvt/test_3d_roof_parametric_cvt.cpp +++ b/tests/3d_examples/test_3d_roof_parametric_cvt/test_3d_roof_parametric_cvt.cpp @@ -270,7 +270,7 @@ return_data roof_under_self_weight(Real dp, bool cvt = true, int particle_number observer_point_shell point_A; observer_point_shell point_B; point_A.pos_0 = Vec3d(radius * std::sin(theta_radian), radius * std::cos(theta_radian) - radius, 0); - point_B.pos_0 = Vec3d(0); + point_B.pos_0 = Vec3d::Zero(); // resolution const int dp_cm = dp * 100; Real total_area = length * 2 * arc; // accounting for particles being on the edges