Skip to content

Commit 9360ac2

Browse files
committed
Merge branch 'master' into xiangyu/unifed_kernel
2 parents a45a683 + b0fcf15 commit 9360ac2

File tree

10 files changed

+37
-26
lines changed

10 files changed

+37
-26
lines changed

src/shared/shared_ck/particle_dynamics/interaction_algorithms_ck.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,13 @@ class InteractionDynamicsCK<ExecutionPolicy, InteractionType<AlgorithmType>>
101101
InteractionDynamicsCK() {};
102102

103103
template <typename... ControlParameters, typename... RelationParameters, typename... Args>
104-
auto &addContactInteraction(Contact<RelationParameters...> &contact_relation, Args &&...args);
104+
auto &addPostContactInteraction(Contact<RelationParameters...> &contact_relation, Args &&...args);
105105

106-
auto &addContactInteraction(BaseDynamics<void> &contact_interaction);
106+
template <typename... ControlParameters, typename... RelationParameters, typename... Args>
107+
auto &addPreContactInteraction(Contact<RelationParameters...> &contact_relation, Args &&...args);
108+
109+
auto &addPostContactInteraction(BaseDynamics<void> &contact_interaction);
110+
auto &addPreContactInteraction(BaseDynamics<void> &contact_interaction);
107111

108112
template <class UpdateType, typename... Args>
109113
auto &addPostStateDynamics(Args &&...args);

src/shared/shared_ck/particle_dynamics/interaction_algorithms_ck.hpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace SPH
99
template <class ExecutionPolicy, typename AlgorithmType, template <typename...> class InteractionType>
1010
template <typename... ControlParameters, typename... RelationParameters, typename... Args>
1111
auto &InteractionDynamicsCK<ExecutionPolicy, InteractionType<AlgorithmType>>::
12-
addContactInteraction(Contact<RelationParameters...> &contact_relation, Args &&...args)
12+
addPostContactInteraction(Contact<RelationParameters...> &contact_relation, Args &&...args)
1313
{
1414
this->post_processes_.push_back(
1515
supplementary_dynamics_keeper_.template createPtr<
@@ -20,11 +20,18 @@ auto &InteractionDynamicsCK<ExecutionPolicy, InteractionType<AlgorithmType>>::
2020
}
2121
template <class ExecutionPolicy, typename AlgorithmType, template <typename...> class InteractionType>
2222
auto &InteractionDynamicsCK<ExecutionPolicy, InteractionType<AlgorithmType>>::
23-
addContactInteraction(BaseDynamics<void> &contact_interaction)
23+
addPostContactInteraction(BaseDynamics<void> &contact_interaction)
2424
{
2525
this->post_processes_.push_back(&contact_interaction);
2626
return *this;
2727
}
28+
template <class ExecutionPolicy, typename AlgorithmType, template <typename...> class InteractionType>
29+
auto &InteractionDynamicsCK<ExecutionPolicy, InteractionType<AlgorithmType>>::
30+
addPreContactInteraction(BaseDynamics<void> &contact_interaction)
31+
{
32+
this->pre_processes_.push_back(&contact_interaction);
33+
return *this;
34+
}
2835
//=================================================================================================//
2936
template <class ExecutionPolicy, typename AlgorithmType, template <typename...> class InteractionType>
3037
template <class UpdateType, typename... Args>

tests/2d_examples/2d_examples_ck/test_2d_dambreak_ck/dambreak_ck.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,19 @@ int main(int ac, char *av[])
100100

101101
auto &fluid_linear_correction_matrix =
102102
main_methods.addInteractionDynamics<LinearCorrectionMatrix, WithUpdate>(water_block_inner, 0.5)
103-
.addContactInteraction(water_wall_contact);
103+
.addPostContactInteraction(water_wall_contact);
104104
auto &fluid_acoustic_step_1st_half =
105105
main_methods.addInteractionDynamics<
106106
fluid_dynamics::AcousticStep1stHalf, OneLevel, AcousticRiemannSolverCK, LinearCorrectionCK>(water_block_inner)
107-
.addContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
107+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
108108
auto &fluid_acoustic_step_2nd_half =
109109
main_methods.addInteractionDynamics<
110110
fluid_dynamics::AcousticStep2ndHalf, OneLevel, AcousticRiemannSolverCK, LinearCorrectionCK>(water_block_inner)
111-
.addContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
111+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
112112
auto &fluid_density_regularization =
113113
main_methods.addInteractionDynamics<
114114
fluid_dynamics::DensityRegularization, WithUpdate, FreeSurface, AllParticles>(water_block_inner)
115-
.addContactInteraction(water_wall_contact);
115+
.addPostContactInteraction(water_wall_contact);
116116

117117
auto &fluid_advection_time_step = main_methods.addReduceDynamics<fluid_dynamics::AdvectionTimeStepCK>(water_block, U_ref);
118118
auto &fluid_acoustic_time_step = main_methods.addReduceDynamics<fluid_dynamics::AcousticTimeStepCK<>>(water_block);

tests/2d_examples/2d_examples_ck/test_2d_eulerian_flow_around_cylinder_ck/2d_eulerian_flow_around_cylinder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ int main(int ac, char *av[])
110110

111111
auto &water_block_relaxation_residual =
112112
main_methods.addInteractionDynamics<RelaxationResidualCK, NoKernelCorrectionCK>(water_block_inner)
113-
.addContactInteraction<Boundary, NoKernelCorrectionCK>(water_block_contact)
113+
.addPostContactInteraction<Boundary, NoKernelCorrectionCK>(water_block_contact)
114114
.addPostStateDynamics<LevelsetKernelGradientIntegral>(water_block, *outer_level_set_shape);
115115
auto &water_block_relaxation_scaling = main_methods.addReduceDynamics<RelaxationScalingCK>(water_block);
116116
auto &water_block_update_particle_position = main_methods.addStateDynamics<PositionRelaxationCK>(water_block);

tests/2d_examples/2d_examples_ck/test_2d_particle_generator_single_resolution_ck/particle_generator_single_resolution.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ int main(int ac, char *av[])
101101

102102
auto &filler_relaxation_residual =
103103
main_methods.addInteractionDynamics<RelaxationResidualCK, NoKernelCorrectionCK>(filler_inner)
104-
.addContactInteraction<Boundary, NoKernelCorrectionCK>(filler_contact);
104+
.addPostContactInteraction<Boundary, NoKernelCorrectionCK>(filler_contact);
105105
auto &filler_relaxation_scaling = main_methods.addReduceDynamics<RelaxationScalingCK>(filler);
106106
auto &filler_update_particle_position = main_methods.addStateDynamics<PositionRelaxationCK>(filler);
107107

tests/2d_examples/2d_examples_ck/test_2d_stfb_ck/stfb.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,20 +181,20 @@ int main(int ac, char *av[])
181181
auto &fluid_acoustic_step_1st_half =
182182
main_methods.addInteractionDynamicsOneLevel<
183183
fluid_dynamics::AcousticStep1stHalf, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_inner)
184-
.addContactInteraction<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
184+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
185185

186186
auto &fluid_acoustic_step_2nd_half =
187187
main_methods.addInteractionDynamicsOneLevel<
188188
fluid_dynamics::AcousticStep2ndHalf, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_inner);
189189
auto &fluid_acoustic_step_2nd_half_with_wall =
190190
main_methods.addInteractionDynamics<
191191
fluid_dynamics::AcousticStep2ndHalf, Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
192-
fluid_acoustic_step_2nd_half.addContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
192+
fluid_acoustic_step_2nd_half.addPostContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
193193

194194
auto &fluid_density_regularization =
195195
main_methods.addInteractionDynamicsWithUpdate<
196196
fluid_dynamics::DensityRegularization, FreeSurface, AllParticles>(water_block_inner)
197-
.addContactInteraction(water_block_contact);
197+
.addPostContactInteraction(water_block_contact);
198198

199199
auto &fluid_advection_time_step = main_methods.addReduceDynamics<fluid_dynamics::AdvectionTimeStepCK>(water_block, U_f);
200200
auto &fluid_acoustic_time_step = main_methods.addReduceDynamics<fluid_dynamics::AcousticTimeStepCK<>>(water_block);
@@ -203,7 +203,7 @@ int main(int ac, char *av[])
203203
fluid_dynamics::ViscousForceCK, Viscosity, NoKernelCorrectionCK>(water_block_inner);
204204
auto &fluid_viscous_force_from_wall =
205205
main_methods.addInteractionDynamics<fluid_dynamics::ViscousForceCK, Wall, Viscosity, NoKernelCorrectionCK>(water_block_contact);
206-
fluid_viscous_force.addContactInteraction(fluid_viscous_force_from_wall);
206+
fluid_viscous_force.addPostContactInteraction(fluid_viscous_force_from_wall);
207207

208208
auto &viscous_force_on_structure =
209209
main_methods.addInteractionDynamicsWithUpdate<

tests/3d_examples/3d_examples_ck/test_3d_stfb_ck/stfb.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ int main(int ac, char *av[])
216216
fluid_acoustic_step_2nd_half(water_block_inner);
217217
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::AcousticStep2ndHalf<Contact<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>>>
218218
fluid_acoustic_step_2nd_half_with_wall(water_block_contact);
219-
fluid_acoustic_step_2nd_half.addContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
219+
fluid_acoustic_step_2nd_half.addPostContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
220220

221221
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::DensityRegularizationComplexFreeSurface>
222222
fluid_density_regularization(water_block_inner, water_block_contact);
@@ -225,7 +225,7 @@ int main(int ac, char *av[])
225225
fluid_viscous_force(water_block_inner);
226226
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::ViscousForceCK<Contact<Wall, Viscosity, NoKernelCorrectionCK>>>
227227
fluid_viscous_force_from_wall(water_block_contact);
228-
fluid_viscous_force.addContactInteraction(fluid_viscous_force_from_wall);
228+
fluid_viscous_force.addPostContactInteraction(fluid_viscous_force_from_wall);
229229

230230
InteractionDynamicsCK<MainExecutionPolicy, FSI::ViscousForceOnStructure<decltype(fluid_viscous_force_from_wall)>>
231231
viscous_force_on_structure(structure_contact);

tests/tests_sycl/2d_examples/test_2d_dambreak_sycl/dambreak_sycl.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,19 +100,19 @@ int main(int ac, char *av[])
100100

101101
auto &fluid_linear_correction_matrix =
102102
main_methods.addInteractionDynamics<LinearCorrectionMatrix, WithUpdate>(water_block_inner, 0.5)
103-
.addContactInteraction(water_wall_contact);
103+
.addPostContactInteraction(water_wall_contact);
104104
auto &fluid_acoustic_step_1st_half =
105105
main_methods.addInteractionDynamics<
106106
fluid_dynamics::AcousticStep1stHalf, OneLevel, AcousticRiemannSolverCK, LinearCorrectionCK>(water_block_inner)
107-
.addContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
107+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
108108
auto &fluid_acoustic_step_2nd_half =
109109
main_methods.addInteractionDynamics<
110110
fluid_dynamics::AcousticStep2ndHalf, OneLevel, AcousticRiemannSolverCK, LinearCorrectionCK>(water_block_inner)
111-
.addContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
111+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, LinearCorrectionCK>(water_wall_contact);
112112
auto &fluid_density_regularization =
113113
main_methods.addInteractionDynamics<
114114
fluid_dynamics::DensityRegularization, WithUpdate, FreeSurface, AllParticles>(water_block_inner)
115-
.addContactInteraction(water_wall_contact);
115+
.addPostContactInteraction(water_wall_contact);
116116

117117
auto &fluid_advection_time_step = main_methods.addReduceDynamics<fluid_dynamics::AdvectionTimeStepCK>(water_block, U_ref);
118118
auto &fluid_acoustic_time_step = main_methods.addReduceDynamics<fluid_dynamics::AcousticTimeStepCK<>>(water_block);

tests/tests_sycl/2d_examples/test_2d_stfb_sycl/stfb.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -181,20 +181,20 @@ int main(int ac, char *av[])
181181
auto &fluid_acoustic_step_1st_half =
182182
main_methods.addInteractionDynamicsOneLevel<
183183
fluid_dynamics::AcousticStep1stHalf, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_inner)
184-
.addContactInteraction<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
184+
.addPostContactInteraction<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
185185

186186
auto &fluid_acoustic_step_2nd_half =
187187
main_methods.addInteractionDynamicsOneLevel<
188188
fluid_dynamics::AcousticStep2ndHalf, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_inner);
189189
auto &fluid_acoustic_step_2nd_half_with_wall =
190190
main_methods.addInteractionDynamics<
191191
fluid_dynamics::AcousticStep2ndHalf, Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>(water_block_contact);
192-
fluid_acoustic_step_2nd_half.addContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
192+
fluid_acoustic_step_2nd_half.addPostContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
193193

194194
auto &fluid_density_regularization =
195195
main_methods.addInteractionDynamicsWithUpdate<
196196
fluid_dynamics::DensityRegularization, FreeSurface, AllParticles>(water_block_inner)
197-
.addContactInteraction(water_block_contact);
197+
.addPostContactInteraction(water_block_contact);
198198

199199
auto &fluid_advection_time_step = main_methods.addReduceDynamics<fluid_dynamics::AdvectionTimeStepCK>(water_block, U_f);
200200
auto &fluid_acoustic_time_step = main_methods.addReduceDynamics<fluid_dynamics::AcousticTimeStepCK<>>(water_block);
@@ -203,7 +203,7 @@ int main(int ac, char *av[])
203203
fluid_dynamics::ViscousForceCK, Viscosity, NoKernelCorrectionCK>(water_block_inner);
204204
auto &fluid_viscous_force_from_wall =
205205
main_methods.addInteractionDynamics<fluid_dynamics::ViscousForceCK, Wall, Viscosity, NoKernelCorrectionCK>(water_block_contact);
206-
fluid_viscous_force.addContactInteraction(fluid_viscous_force_from_wall);
206+
fluid_viscous_force.addPostContactInteraction(fluid_viscous_force_from_wall);
207207

208208
auto &viscous_force_on_structure =
209209
main_methods.addInteractionDynamicsWithUpdate<

tests/tests_sycl/3d_examples/test_3d_stfb_sycl/stfb.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ int main(int ac, char *av[])
215215
fluid_acoustic_step_2nd_half(water_block_inner);
216216
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::AcousticStep2ndHalf<Contact<Wall, AcousticRiemannSolverCK, NoKernelCorrectionCK>>>
217217
fluid_acoustic_step_2nd_half_with_wall(water_block_contact);
218-
fluid_acoustic_step_2nd_half.addContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
218+
fluid_acoustic_step_2nd_half.addPostContactInteraction(fluid_acoustic_step_2nd_half_with_wall);
219219

220220
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::DensityRegularizationComplexFreeSurface>
221221
fluid_density_regularization(water_block_inner, water_block_contact);
@@ -224,7 +224,7 @@ int main(int ac, char *av[])
224224
fluid_viscous_force(water_block_inner);
225225
InteractionDynamicsCK<MainExecutionPolicy, fluid_dynamics::ViscousForceCK<Contact<Wall, Viscosity, NoKernelCorrectionCK>>>
226226
fluid_viscous_force_from_wall(water_block_contact);
227-
fluid_viscous_force.addContactInteraction(fluid_viscous_force_from_wall);
227+
fluid_viscous_force.addPostContactInteraction(fluid_viscous_force_from_wall);
228228

229229
InteractionDynamicsCK<MainExecutionPolicy, FSI::ViscousForceOnStructure<decltype(fluid_viscous_force_from_wall)>>
230230
viscous_force_on_structure(structure_contact);

0 commit comments

Comments
 (0)