Class Elasticity_Peer2018

Inheritance Relationships

Base Type

Class Documentation

class SPH::Elasticity_Peer2018 : public SPH::ElasticityBase

This class implements the implicit SPH formulation for incompressible linearly elastic solids introduced by Peer et al. [PGBT17].

References:

  • [PGBT17] Andreas Peer, Christoph Gissler, Stefan Band, and Matthias Teschner. An implicit SPH formulation for incompressible linearly elastic solids. Computer Graphics Forum, 2017. URL: http://dx.doi.org/10.1111/cgf.13317

Public Functions

Elasticity_Peer2018(FluidModel *model)
~Elasticity_Peer2018(void)
void step()
void reset()
void performNeighborhoodSearchSort()
void saveState(BinaryFileWriter &binWriter)
void loadState(BinaryFileReader &binReader)

Public Static Functions

void matrixVecProd(const Real *vec, Real *result, void *userData)

Public Static Attributes

int ITERATIONS = -1
int MAX_ITERATIONS = -1
int MAX_ERROR = -1
int ALPHA = -1

Protected Types

typedef Eigen::ConjugateGradient<MatrixReplacement, Eigen::Lower | Eigen::Upper, Eigen::IdentityPreconditioner> Solver

Protected Functions

void initValues()
void computeMatrixL()
void computeRotations()
void computeRHS(VectorXr &rhs)
void initParameters()
FORCE_INLINE void symMatTimesVec (const Vector6r &M, const Vector3r &v, Vector3r &res)

Protected Attributes

std::vector<unsigned int> m_current_to_initial_index
std::vector<unsigned int> m_initial_to_current_index
std::vector<std::vector<unsigned int>> m_initialNeighbors
std::vector<Real> m_restVolumes
std::vector<Matrix3r> m_rotations
std::vector<Vector6r> m_stress
std::vector<Matrix3r> m_L
std::vector<Matrix3r> m_RL
std::vector<Matrix3r> m_F
unsigned int m_iterations
unsigned int m_maxIter
Real m_maxError
Real m_alpha
Solver m_solver