#include <EulerSolver.h>


Public Member Functions | |
| EulerSolver () | |
| void | solve (double dt) |
| Main computation method. | |
| virtual double | getIntegrationFactor (int inputDerivative, int outputDerivative) const |
| Given an input derivative order (0 for position, 1 for velocity, 2 for acceleration), how much will it affect the output derivative of the given order. | |
| virtual double | getSolutionIntegrationFactor (int outputDerivative) const |
| Given a solution of the linear system, how much will it affect the output derivative of the given order. | |
Data Fields | |
| Data< bool > | symplectic |
Two variants are available, depending on the value of field "symplectic". If true (the default), the symplectic variant of Euler's method is applied: If false, the basic Euler's method is applied (less robust)
Definition at line 45 of file EulerSolver.h.
| sofa::component::odesolver::EulerSolver::EulerSolver | ( | ) |
Definition at line 53 of file EulerSolver.cpp.
| virtual double sofa::component::odesolver::EulerSolver::getIntegrationFactor | ( | int | inputDerivative, | |
| int | outputDerivative | |||
| ) | const [inline, virtual] |
Given an input derivative order (0 for position, 1 for velocity, 2 for acceleration), how much will it affect the output derivative of the given order.
Implements sofa::core::componentmodel::behavior::OdeSolver.
Definition at line 54 of file EulerSolver.h.
References sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::BaseContext::getDt(), sofa::core::objectmodel::Data< T >::getValue(), and symplectic.
| virtual double sofa::component::odesolver::EulerSolver::getSolutionIntegrationFactor | ( | int | outputDerivative | ) | const [inline, virtual] |
Given a solution of the linear system, how much will it affect the output derivative of the given order.
Implements sofa::core::componentmodel::behavior::OdeSolver.
Definition at line 70 of file EulerSolver.h.
References sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::BaseContext::getDt(), sofa::core::objectmodel::Data< T >::getValue(), and symplectic.
| void sofa::component::odesolver::EulerSolver::solve | ( | double | dt | ) | [virtual] |
Main computation method.
Specify and execute all computation for timestep integration, i.e. advancing the state from time t to t+dt.
Implements sofa::core::componentmodel::behavior::OdeSolver.
Definition at line 57 of file EulerSolver.cpp.
References sofa::simulation::SolverImpl::accFromF(), sofa::simulation::SolverImpl::addSeparateGravity(), sofa::simulation::SolverImpl::computeForce(), sofa::core::componentmodel::behavior::BaseMechanicalState::VecId::dx(), sofa::simulation::Visitor::execute(), sofa::core::objectmodel::BaseObject::f_printLog, sofa::core::componentmodel::behavior::BaseMechanicalState::VecId::force(), sofa::core::objectmodel::BaseObject::getContext(), sofa::core::objectmodel::Data< T >::getValue(), sofa::simulation::MechanicalVMultiOpVisitor::ops, sofa::core::componentmodel::behavior::MultiVector< Parent >::peq(), sofa::core::componentmodel::behavior::BaseMechanicalState::VecId::position(), sofa::simulation::SolverImpl::projectResponse(), symplectic, and sofa::core::componentmodel::behavior::BaseMechanicalState::VecId::velocity().
Definition at line 50 of file EulerSolver.h.
Referenced by getIntegrationFactor(), getSolutionIntegrationFactor(), and solve().
1.5.7.1