SolidBeamUnsteady.cpp File Reference
#include "Oomph/SolidProblem.h"
#include "Math/Helpers.h"

Classes

class  Beam
 Defines a SolidProblem of element type RefineableQDPVDElement<3,2>. Add functionality to write output. More...
 

Functions

int main ()
 

Function Documentation

◆ main()

int main ( )

Simulates a cubic rod (20mm x 2mm x 2mm) of density 2500 kg/m^3, elastic modulus 100 MPa, fixed on left side, bent by gravity

51 {
52  // Solve the problem
53  Beam problem;
54  problem.setName("SolidBeamUnsteady");
55  problem.setElasticModulus(1e8);
56  problem.setDensity(2500);
57  problem.setSolidCubicMesh(20, 2, 2, 0, 0.2, 0, 0.02, 0, 0.02);
58  problem.pinBoundary(Beam::Boundary::X_MIN);
59  problem.setBodyForceAsGravity();
60  problem.setNewtonSolverTolerance(3e-8);
61  problem.prepareForSolve();
62  problem.linear_solver_pt()->disable_doc_time();
63  //problem.disable_info_in_newton_solve();
64  //set time scale of oscillation
65  //https://vlab.amrita.edu/?sub=3&brch=175&sim=1080&cnt=1
66  double b = 0.02, d = 0.02, l = 0.2;
67  double inertia = b*d*d*d/12;
68  double omega = 1.875*1.875*sqrt(problem.getElasticModulus()*inertia/(problem.getDensity()*b*d*std::pow(l,4)));
69  double timeScale = 2*constants::pi/omega; //0.06
70  // simulate two oscillations, check energy balance
71  problem.solveUnsteady(2.0*timeScale, 0.04*timeScale, 10);
72  return 0;
73 }
AnnoyingScalar sqrt(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:134
Array< double, 1, 3 > e(1./3., 0.5, 2.)
Scalar * b
Definition: benchVecAdd.cpp:17
Defines a SolidProblem of element type RefineableQDPVDElement<3,2>. Add functionality to write output...
Definition: SolidBeam.cpp:10
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC bfloat16 pow(const bfloat16 &a, const bfloat16 &b)
Definition: BFloat16.h:625
Vector::Scalar omega(const Vector &t, const Vector &s, RealScalar angle)
Definition: IDRS.h:36
double timeScale
Time scale.
Definition: VCoupledElement.h:13
const Mdouble pi
Definition: ExtendedMath.h:23
Constructor for SteadyAxisymAdvectionDiffusion problem
Definition: steady_axisym_advection_diffusion.cc:213

References b, e(), Eigen::internal::omega(), constants::pi, Eigen::bfloat16_impl::pow(), problem, sqrt(), and Global_Physical_Variables::timeScale.