.. _program_listing_file_SPlisHSPlasH_PBF_TimeIntegration.cpp: Program Listing for File TimeIntegration.cpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``SPlisHSPlasH/PBF/TimeIntegration.cpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #include "TimeIntegration.h" using namespace SPH; // ---------------------------------------------------------------------------------------------- void TimeIntegration::semiImplicitEuler( const Real h, const Real mass, Vector3r &position, Vector3r &velocity, const Vector3r &acceleration) { if (mass != 0.0) { velocity += acceleration * h; position += velocity * h; } } // ---------------------------------------------------------------------------------------------- void TimeIntegration::velocityUpdateFirstOrder( const Real h, const Real mass, const Vector3r &position, const Vector3r &oldPosition, Vector3r &velocity) { if (mass != 0.0) velocity = (1.0 / h) * (position - oldPosition); } // ---------------------------------------------------------------------------------------------- void TimeIntegration::velocityUpdateSecondOrder( const Real h, const Real mass, const Vector3r &position, const Vector3r &oldPosition, const Vector3r &positionOfLastStep, Vector3r &velocity) { if (mass != 0.0) velocity = (1.0 / h) * (1.5*position - 2.0*oldPosition + 0.5*positionOfLastStep); }