     /// used to to update the particles position, velocity, and density in
     /// time, the latter is used to update the pressure from an equation of
     /// state. In the implicit scheme, the pressures are updated instead of density.
-    virtual void IntegrateSPH(
+    void IntegrateSPH(
         std::shared_ptr<SphMarkerDataD> sphMarkersD2,  ///< Pointer SPH particle information at the second half step
         std::shared_ptr<SphMarkerDataD> sphMarkersD1,  ///< Pointer SPH particle information at the first half step
         std::shared_ptr<FsiBodiesDataD> fsiBodiesD,    ///< Pointer information of rigid bodies

    ChFluidDynamics(std::shared_ptr<ChBce> otherBceWorker,             ///< Pointer to the information of BCE particles
                    ChSystemFsi_impl& otherFsiSystem,                  ///< Pointer to the FSI system
                    std::shared_ptr<SimParams> otherParamsH,           ///< Pointer to the simulation parameters
                    std::shared_ptr<ChCounters> otherNumObjects,  ///< Pointer to the number of objects
                    TimeIntegrator otherIntegrator,                    ///< Integration type (only for ISPH)
                    bool verb                                          ///< verbose terminal output
    );

    std::shared_ptr<ChFsiForce> GetForceSystem() { return forceSystem; }

  protected:
    ChSystemFsi_impl& fsiSystem;              ///< FSI data; values are maintained externally
    std::shared_ptr<SimParams> paramsH;       ///< FSI parameters; values are mainained externally
    std::shared_ptr<ChCounters> numObjectsH;  ///< counters (fluid particles, number of rigids, boundaries)
    std::shared_ptr<ChFsiForce> forceSystem;  ///< Force system object; calculates the force between particles
    TimeIntegrator integrator_type;           ///< Integrator type

