171 problem.random.setRandomSeed(5);
173 problem.setupInitialConditions();
174 Mdouble normalRelativeVelocity, tangentialRelativeVelocity, analyticTangentialRelativeVelocity;
177 problem.setName(
"ForceSelfTest5");
179 problem.getRelativeVelocityComponents(normalRelativeVelocity, tangentialRelativeVelocity);
180 logger(
INFO,
"tangentialRelativeVelocity: analytic=%, simulation=%\n",
182 logger(
INFO,
"normalRelativeVelocity: analytic=%, simulation=%",
183 -
problem.en *
problem.initialNormalRelativeVelocity, normalRelativeVelocity);
189 problem.species->setSlidingFrictionCoefficient(
mu);
190 problem.species->setSlidingDissipation(1e20);
192 problem.setName(
"ForceSelfTest6");
194 problem.getRelativeVelocityComponents(normalRelativeVelocity, tangentialRelativeVelocity);
195 analyticTangentialRelativeVelocity =
std::max(0.0,
problem.initialTangentialRelativeVelocity +
197 problem.initialNormalRelativeVelocity);
198 logger(
INFO,
"tangentialRelativeVelocity: analytic=%, simulation=%\n",
199 analyticTangentialRelativeVelocity, tangentialRelativeVelocity,
Flusher::NO_FLUSH);
200 logger(
INFO,
"normalRelativeVelocity: analytic=%, simulation=%",
201 -
problem.en *
problem.initialNormalRelativeVelocity, normalRelativeVelocity);
203 logger(
INFO,
"7: with Coulomb friction, spring activated");
204 problem.species->setSlidingStiffness(1.0);
206 problem.setName(
"ForceSelfTest7");
208 logger(
INFO,
"tangentialRelativeVelocity: analytic=%, simulation=%\n",
209 analyticTangentialRelativeVelocity, tangentialRelativeVelocity,
Flusher::NO_FLUSH);
210 logger(
INFO,
"normalRelativeVelocity: analytic=%, simulation=%",
211 -
problem.en *
problem.initialNormalRelativeVelocity, normalRelativeVelocity);
213 logger(
INFO,
"8: with tangential viscous force");
215 problem.species->setSlidingFrictionCoefficient(1e20);
217 problem.species->setSlidingStiffness(0.0);
218 problem.setName(
"ForceSelfTest8");
220 problem.getRelativeVelocityComponents(normalRelativeVelocity, tangentialRelativeVelocity);
221 analyticTangentialRelativeVelocity =
problem.initialTangentialRelativeVelocity *
222 exp(-2.0 * 3.5 *
problem.species->getSlidingDissipation() /
224 logger(
INFO,
"tangentialRelativeVelocity: analytic=%, simulation=%\n",
225 analyticTangentialRelativeVelocity, tangentialRelativeVelocity,
Flusher::NO_FLUSH);
226 logger(
INFO,
"normalRelativeVelocity: analytic=%, simulation=%",
227 -
problem.en *
problem.initialNormalRelativeVelocity, normalRelativeVelocity);
229 logger(
INFO,
"9: with tangential elastic force");
231 problem.species->setSlidingFrictionCoefficient(1e20);
232 problem.species->setSlidingDissipation(0.0);
233 problem.species->setSlidingStiffness(
235 problem.setName(
"ForceSelfTest9");
237 problem.getRelativeVelocityComponents(normalRelativeVelocity, tangentialRelativeVelocity);
238 analyticTangentialRelativeVelocity =
problem.initialTangentialRelativeVelocity *
241 logger(
INFO,
"tangentialRelativeVelocity: analytic=%, simulation=%\n",
242 analyticTangentialRelativeVelocity, tangentialRelativeVelocity,
Flusher::NO_FLUSH);
243 logger(
INFO,
"normalRelativeVelocity: analytic=%, simulation=%",
244 -
problem.en *
problem.initialNormalRelativeVelocity, normalRelativeVelocity);
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar acos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:138
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
Definition: ForceSelfTest.cpp:12
#define max(a, b)
Definition: datatypes.h:23
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 exp(const bfloat16 &a)
Definition: BFloat16.h:615
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 log(const bfloat16 &a)
Definition: BFloat16.h:618
std::complex< double > mu
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:52
const Mdouble pi
Definition: ExtendedMath.h:23
T square(const T val)
squares a number
Definition: ExtendedMath.h:86
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213