chrono::ChStaticNonLinearRheonomicAnalysis Class Reference

Description

Nonlinear static analysis for a mechanism that is rotating/moving in steady state.

If SetAutomaticSpeedAndAccelerationComputation(true), the rotation/movement, if any, is automaticlally assigned via rheonomic constraints. Consider for example, an elastic turbine blade that rotates via a ChLinkMotorRotationAngle: the motor will impose a steady state rotation that creates centrifugal forces, so the analysis will generate an elongated blade (the ChStaticNonLinearAnalysis cannot capture centrifugal and gyroscopical effects because it resets all speeds/acceleration to zero during its iteration). WARNING: at the moment this is ok only for undeformed finite elements! If automatic computation of speed and acceleration is set to false, it is up to the user to provide an iteration callback that keeps the speeds and accelerations updated as needed.

#include <ChStaticAnalysis.h>

Inheritance diagram for chrono::ChStaticNonLinearRheonomicAnalysis:
Collaboration diagram for chrono::ChStaticNonLinearRheonomicAnalysis:

Classes

class  IterationCallback
 Callback interface for updating the system at each iteration. More...
 

Public Member Functions

void SetVerbose (bool verbose)
 Enable/disable verbose output (default: false).
 
void SetMaxIterations (int max_iters)
 Set the max number of iterations for the Newton Raphson procedure (default: 10).
 
void SetIncrementalSteps (int incr_steps)
 Set the number of steps that, for the first iterations, make the residual grow linearly (default: 6). More...
 
void SetCorrectionTolerance (double reltol, double abstol)
 Set stopping criteria based on WRMS norm of correction and the specified relative and absolute tolerances. More...
 
void SetResidualTolerance (double tol)
 Set stopping criteria based on norm of residual and the specified tolerance. More...
 
int GetMaxIterations () const
 Get the max number of iterations for the Newton Raphson procedure.
 
int GetIncrementalSteps () const
 Set the number of steps that, for the first iterations, make the residual grow linearly.
 
void SetCallbackIterationBegin (std::shared_ptr< IterationCallback > callback)
 Set the callback to be called at each iteration.
 
void SetAutomaticSpeedAndAccelerationComputation (bool val)
 Enable automatic calculation of system velocities and accelerations from rheonomic constraints (default: false). More...
 
- Public Member Functions inherited from chrono::ChStaticAnalysis
ChIntegrableGetIntegrable ()
 Get the integrable object.
 
const ChStateGetStatePos () const
 Access the state, position part, at current analysis.
 
const ChVectorDynamicGetLagrangeMultipliers () const
 Access the Lagrange multipliers, if any.
 

Friends

class ChSystem
 

Additional Inherited Members

- Protected Member Functions inherited from chrono::ChStaticAnalysis
void SetIntegrable (ChIntegrableIIorder *integrable)
 Set associated integrable object.
 
- Protected Attributes inherited from chrono::ChStaticAnalysis
ChIntegrableIIorderm_integrable
 
ChState X
 
ChVectorDynamic L
 

Member Function Documentation

◆ SetAutomaticSpeedAndAccelerationComputation()

void chrono::ChStaticNonLinearRheonomicAnalysis::SetAutomaticSpeedAndAccelerationComputation ( bool  val)
inline

Enable automatic calculation of system velocities and accelerations from rheonomic constraints (default: false).

Attention: currently, this is working only for non-stretched finite elements. If not enabled, you can use an IterationCallback to update the speeds and accelerations in the caller code.

◆ SetCorrectionTolerance()

void chrono::ChStaticNonLinearRheonomicAnalysis::SetCorrectionTolerance ( double  reltol,
double  abstol 
)

Set stopping criteria based on WRMS norm of correction and the specified relative and absolute tolerances.

This is the default, with reltol = 1e-4, abstol = 1e-8. The Newton Raphson procedure is stopped if the WRMS norm of the correction vector (based on the current state) is less than 1.

◆ SetIncrementalSteps()

void chrono::ChStaticNonLinearRheonomicAnalysis::SetIncrementalSteps ( int  incr_steps)

Set the number of steps that, for the first iterations, make the residual grow linearly (default: 6).

If =0, no incremental application of residual, so it is a classic Newton Raphson iteration, otherwise acts as a continuation strategy. For values > 0 , it might help convergence. Must be less than maxiters.

◆ SetResidualTolerance()

void chrono::ChStaticNonLinearRheonomicAnalysis::SetResidualTolerance ( double  tol)

Set stopping criteria based on norm of residual and the specified tolerance.

The Newton Raphson is stopped when the infinity norm of the residual is below the tolerance.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/timestepper/ChStaticAnalysis.h
  • /builds/uwsbel/chrono/src/chrono/timestepper/ChStaticAnalysis.cpp