![]() |
|
Defines a SolidProblem of element type RefineableQDPVDElement<3,2>. Add functionality to write output. More...
Inheritance diagram for Beam:Public Member Functions | |
| Beam () | |
| void | checkBeamDeflection () |
Public Member Functions inherited from SolidProblem< RefineableQDPVDElement< 3, 2 > > | |
| SolidProblem () | |
| Constructor: set default constitutive law and time stepper. More... | |
| void | setName (const std::string &name) |
| set function for name_ More... | |
| std::string | getName () const |
| get function for name_ More... | |
| void | setElasticModulus (double elasticModulus) |
| set function for elasticModulus_ More... | |
| double | getElasticModulus () const |
| get function for elasticModulus_ More... | |
| void | addDissipation (double dissipation) |
| void | setupRefinementParameters (const double &min_error_target, const double &max_error_target, Z2ErrorEstimator *&error_estimator_pt) |
| void | addAnisotropy (double Ex, double Ey, double Ez) |
| void | setOomphGravity (double gravity) |
| set function for elasticModulus_ More... | |
| double | getOomphGravity () const |
| get function for gravity_ More... | |
| void | setPoissonRatio (double poissonRatio) |
| set function for poissonRatio_ More... | |
| double | getPoissonRatio () const |
| get function for poissonRatio_ More... | |
| void | setDensity (double density) |
| set function for density_ More... | |
| double | getDensity () const |
| get function for density_ More... | |
| void | setBodyForceAsGravity (double gravity=9.8) |
| set function for body_force_pt More... | |
| void | setIsPinned (std::function< bool(SolidNode *, unsigned)> isPinned) |
| set function for isPinned_ More... | |
| void | pinBoundary (unsigned b) |
| void | pinBoundaries (std::vector< unsigned > b) |
| std::enable_if< std::is_base_of< RefineableQDPVDElement< 3, 2 >, ELEMENT >::value, void > | setDissipation (double dissipation) |
| Sets the dissipation coefficient for all elements. More... | |
| void | setNewtonSolverTolerance (double Newton_solver_tolerance) |
| set function for Newton_solver_tolerance More... | |
| void | setMaxNewtonIterations (unsigned Max_newton_iterations) |
| set function for Max_newton_iterations More... | |
| void | setOomphTimeStep (double dt) |
| set function for time step More... | |
| double | getOomphTimeStep () const |
| get function for time step More... | |
| double | getOomphTime () const |
| get function for current time More... | |
| SolidMesh *& | solid_mesh_pt () |
| Get function for the solid mesh pointer. More... | |
| SolidMesh *const & | solid_mesh_pt () const |
| Get function for the solid mesh pointer. More... | |
| SolidMesh *& | traction_mesh_pt () |
| Get function for the traction mesh pointer. More... | |
| SolidMesh *const & | traction_mesh_pt () const |
| Get function for the traction mesh pointer. More... | |
| void | getDomainSize (std::array< double, 3 > &min, std::array< double, 3 > &max) const |
| Computes the domain size (min/max of the nodal positions in x/y/z) More... | |
| void | prepareForSolve () |
| void | countPinned () |
| returns statistics about pinned nodes to the console More... | |
| void | solveSteady (const unsigned &max_adapt=0) |
| void | solveUnsteady (double timeMax, double dt, unsigned saveCount=10, const unsigned &max_adapt=0) |
| void | solveUnsteadyForgiving (double timeMax, double timeMaxMin, double dt, unsigned saveCount=10) |
| void | removeOldFiles () const |
| void | get_x (const Vector< double > &xi, Vector< double > &x) const |
| double | getDeflection (Vector< double > xi, unsigned d) const |
| void | setSolidCubicMesh (const unsigned &nx, const unsigned &ny, const unsigned &nz, const double &xMin, const double &xMax, const double &yMin, const double &yMax, const double &zMin, const double &zMax) |
| void | saveSolidMesh () |
| void | loadSolidMesh (std::string infileName, bool cubic=true) |
| void | writeToVTK () |
| void | getMassMomentumEnergy (double &mass, Vector< double > &com, Vector< double > &linearMomentum, Vector< double > &angularMomentum, double &elasticEnergy, double &kineticEnergy) const |
| See PVDEquationsBase<DIM>::get_energy. More... | |
Private Member Functions | |
| void | actionsBeforeSolve () override |
| Write header of output file. More... | |
| void | actionsAfterSolve () override |
| Write header of output file. More... | |
| void | actionsBeforeOomphTimeStep () override |
| Each time step, compute deflection, elastic, kinetic and gravitational energy, and write to output file. More... | |
| double | getBeamDeflection () const |
| Computes beam deflection. More... | |
| void | actionsBeforeSolve () override |
| Write header of output file. More... | |
| void | actionsBeforeOomphTimeStep () override |
| Each time step, compute deflection, elastic, kinetic and gravitational energy, and write to output file. More... | |
| double | getBeamDeflection () const |
| Computes beam deflection. More... | |
Private Attributes | |
| double | length = 20.0 |
| double | distance = 0.4 |
| double | bulkDensity = 1309 |
| double | elasticModulus = 1e8 |
| std::function< Vec3D(double)> | velocityAtBoundary |
| std::ofstream | out |
| output file stream More... | |
Additional Inherited Members | |
Public Types inherited from SolidProblem< RefineableQDPVDElement< 3, 2 > > | |
| enum | Boundary |
Protected Types inherited from SolidProblem< RefineableQDPVDElement< 3, 2 > > | |
| typedef RefineableQDPVDElement< 3, 2 > | ELEMENT |
Protected Attributes inherited from SolidProblem< RefineableQDPVDElement< 3, 2 > > | |
| std::string | name_ |
| double | elasticModulus_ |
| Elastic modulus (set via setSolid) More... | |
| double | poissonRatio_ |
| Poisson's ratio (set via setSolid) More... | |
| double | density_ |
| Density. More... | |
| double | gravity_ |
| Density. More... | |
| void(* | body_force_fct )(const double &time, const Vector< double > &xi, Vector< double > &b) |
| Pointer to the body force function. More... | |
| ConstitutiveLaw * | constitutive_law_pt |
| Pointer to constitutive law (should be set in constructor) More... | |
| SolidMesh * | Solid_mesh_pt |
| Pointer to solid mesh. More... | |
| SolidMesh * | Traction_mesh_pt |
| Pointer to mesh of traction elements. More... | |
| std::function< bool(SolidNode *, unsigned)> | isPinned_ |
| Function to determine which nodal positions are pinned. More... | |
Defines a SolidProblem of element type RefineableQDPVDElement<3,2>. Add functionality to write output.
Defines a SolidProblem of element type RefineableQDPVDElement<3,2>.
|
inline |
References bulkDensity, distance, e(), elasticModulus, SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDensity(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getElasticModulus(), length, SolidProblem< RefineableQDPVDElement< 3, 2 > >::pinBoundaries(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::prepareForSolve(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::removeOldFiles(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::setDensity(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::setElasticModulus(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::setName(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::setNewtonSolverTolerance(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::setSolidCubicMesh(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::solveUnsteady(), and sqrt().
|
inlineoverrideprivatevirtual |
Write header of output file.
Reimplemented from SolidProblem< RefineableQDPVDElement< 3, 2 > >.
References out.
|
inlineoverrideprivatevirtual |
Each time step, compute deflection, elastic, kinetic and gravitational energy, and write to output file.
Reimplemented from SolidProblem< RefineableQDPVDElement< 3, 2 > >.
References getBeamDeflection(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getMassMomentumEnergy(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getOomphTime(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getOomphTimeStep(), n, out, Jeffery_Solution::velocity(), velocityAtBoundary, and oomph::Node::x().
|
inlineoverrideprivatevirtual |
Each time step, compute deflection, elastic, kinetic and gravitational energy, and write to output file.
Reimplemented from SolidProblem< RefineableQDPVDElement< 3, 2 > >.
References getBeamDeflection(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getMassMomentumEnergy(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getOomphTime(), and out.
|
inlineoverrideprivatevirtual |
Write header of output file.
Reimplemented from SolidProblem< RefineableQDPVDElement< 3, 2 > >.
References SolidProblem< RefineableQDPVDElement< 3, 2 > >::getName(), out, and helpers::writeToFile().
|
inlineoverrideprivatevirtual |
Write header of output file.
Reimplemented from SolidProblem< RefineableQDPVDElement< 3, 2 > >.
References SolidProblem< RefineableQDPVDElement< 3, 2 > >::getName(), out, and helpers::writeToFile().
|
inline |
Checks the beam deflection against an analytical solution: https://autofem.com/examples/deflection_of_a_plate_under_theg.html
References helpers::check(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::density_, e(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::elasticModulus_, SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDeflection(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDomainSize(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getMassMomentumEnergy(), Global_Physical_Variables::height(), INFO, length, logger, max, min, and Eigen::bfloat16_impl::pow().
|
inlineprivate |
Computes beam deflection.
References SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDeflection(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDomainSize(), max, and min.
Referenced by actionsBeforeOomphTimeStep().
|
inlineprivate |
Computes beam deflection.
References SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDeflection(), SolidProblem< RefineableQDPVDElement< 3, 2 > >::getDomainSize(), max, and min.
|
private |
Referenced by Beam(), and checkBeamDeflection().
|
private |
output file stream
Referenced by actionsAfterSolve(), actionsBeforeOomphTimeStep(), and actionsBeforeSolve().
Referenced by actionsBeforeOomphTimeStep().