29 auto smoothingLength = std::make_shared<FloatingNumber<TDataType>>();
30 smoothingLength->setName(
"Smoothing Length");
31 smoothingLength->varValue()->setValue(
Real(0.012));
34 auto samplingDistance = std::make_shared<FloatingNumber<TDataType>>();
35 samplingDistance->setName(
"Sampling Distance");
36 samplingDistance->varValue()->setValue(
Real(0.005));
39 auto m_nbrQueryPoint = std::make_shared<NeighborPointQuery<TDataType>>();
40 smoothingLength->outFloating()->connect(m_nbrQueryPoint->inRadius());
41 this->inPosition()->connect(m_nbrQueryPoint->inPosition());
45 auto m_nbrQueryTri = std::make_shared<NeighborTriangleQuery<TDataType>>();
46 smoothingLength->outFloating()->connect(m_nbrQueryTri->inRadius());
47 this->inPosition()->connect(m_nbrQueryTri->inPosition());
48 this->inTriangleSet()->connect(m_nbrQueryTri->inTriangleSet());
62 auto m_integrator = std::make_shared<ParticleIntegrator<TDataType>>();
63 this->inTimeStep()->connect(m_integrator->inTimeStep());
64 this->inPosition()->connect(m_integrator->inPosition());
65 this->inVelocity()->connect(m_integrator->inVelocity());
68 auto m_visModule = std::make_shared<ImplicitViscosity<TDataType>>();
69 this->inTimeStep()->connect(m_visModule->inTimeStep());
70 this->inPosition()->connect(m_visModule->inPosition());
71 this->inVelocity()->connect(m_visModule->inVelocity());
72 m_visModule->varViscosity()->setValue(
Real(1));
73 smoothingLength->outFloating()->connect(m_visModule->inSmoothingLength());
74 m_nbrQueryPoint->outNeighborIds()->connect(m_visModule->inNeighborIds());
78 auto m_meshCollision = std::make_shared<TriangularMeshConstraint<TDataType>>();
79 this->inTimeStep()->connect(m_meshCollision->inTimeStep());
80 this->inPosition()->connect(m_meshCollision->inPosition());
81 this->inVelocity()->connect(m_meshCollision->inVelocity());
82 this->inTriangleSet()->connect(m_meshCollision->inTriangleSet());
83 m_nbrQueryTri->outNeighborIds()->connect(m_meshCollision->inTriangleNeighborIds());
86 this->varSmoothingLength()->attach(
87 std::make_shared<FCallBackFunc>(
89 smoothingLength->varValue()->setValue(this->varSmoothingLength()->getValue());