     /// 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

    /// Update activity of SPH particles.
    /// SPH particles which are in an active domain are set as active particles.
    /// For example, particles close to a rigid body.
    virtual void UpdateActivity(std::shared_ptr<SphMarkerDataD> sphMarkersD1,
                                std::shared_ptr<SphMarkerDataD> sphMarkersD2,
                                std::shared_ptr<FsiBodiesDataD> fsiBodiesD,
                                Real Time);

    /// Update SPH particles data.
    /// In an explicit formulation, the function relies on the explicit integration scheme.
    virtual void UpdateFluid(std::shared_ptr<SphMarkerDataD> sphMarkersD, Real dT);

    /// Update SPH particles data.
    /// In an implicit formulation, the function relies on the implicit integration scheme.
    virtual void UpdateFluid_Implicit(std::shared_ptr<SphMarkerDataD> sphMarkersD);

    /// The function applies periodic boundary to the normal SPH particles.
    virtual void ApplyBoundarySPH_Markers(std::shared_ptr<SphMarkerDataD> sphMarkersD);

    /// The function modify the velocity of BCE particles.
    virtual void ApplyModifiedBoundarySPH_Markers(std::shared_ptr<SphMarkerDataD> sphMarkersD);
};

/// @} fsi_physics

    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

