13        this->varNormalFriction()->attach(
 
   14            std::make_shared<FCallBackFunc>(
 
   19        this->varTangentialFriction()->attach(
 
   20            std::make_shared<FCallBackFunc>(
 
   22                    mBoundaryConstraint->varTangentialFriction()->setValue(this->varTangentialFriction()->getValue());
 
   25        this->varNormalFriction()->setValue(0.95f);
 
   26        this->varTangentialFriction()->setValue(0.0f);
 
 
   37        Real dt = this->stateTimeStep()->getValue();
 
   39        auto volumes = this->getVolumes();
 
   41        for (
size_t t = 0; t < volumes.size(); t++)
 
   43            auto levelset = volumes[t]->stateLevelSet()->getDataPtr();
 
   45            auto pSys = this->getParticleSystems();
 
   47            for (
int i = 0; i < pSys.size(); i++)
 
   49                auto posFd = pSys[i]->statePosition();
 
   50                auto velFd = pSys[i]->stateVelocity();
 
   52                if(!posFd->isEmpty() && !velFd->isEmpty())
 
   56            auto triSys = this->getTriangularSystems();
 
   57            for (
int i = 0; i < triSys.size(); i++)
 
   59                auto posFd = triSys[i]->statePosition();
 
   60                auto velFd = triSys[i]->stateVelocity();
 
   62                if (!posFd->isEmpty() && !velFd->isEmpty())
 
   66            auto tetSys = this->getTetrahedralSystems();
 
   67            for (
int i = 0; i < tetSys.size(); i++)
 
   69                auto posFd = tetSys[i]->statePosition();
 
   70                auto velFd = tetSys[i]->stateVelocity();
 
   72                if (!posFd->isEmpty() && !velFd->isEmpty())