6 #if !defined(KRATOS_ANALYTIC_SPHERIC_PARTICLE_H_INCLUDED)
7 #define KRATOS_ANALYTIC_SPHERIC_PARTICLE_H_INCLUDED
50 std::string
Info()
const override
52 std::stringstream buffer;
53 buffer <<
"AnalyticSphericParticle" ;
58 void PrintInfo(std::ostream& rOStream)
const override {rOStream <<
"AnalyticSphericParticle";}
61 void PrintData(std::ostream& rOStream)
const override {}
63 int GetNumberOfCollisions();
64 int GetNumberOfCollisionsWithFaces();
65 int GetNumberOfCollisionsWithEdges();
67 static const unsigned int mMaxCollidingSpheres = 4;
68 static const unsigned int mMaxCollidingFaceSpheres = 4;
103 ClearImpactMemberVariables();
104 return std::unique_ptr<SphericParticle::ParticleDataBuffer>(
new ParticleDataBuffer(p_this_particle));
107 void PushBackIdToContactingNeighbours(BaseBufferType &data_buffer,
int id);
109 void PushBackIdToContactingFaceNeighbours(BaseBufferType & data_buffer,
int p_wall_id);
112 void ClearNeighbours(BaseBufferType & data_buffer);
117 std::vector<bool> NeighboursContactStatus;
118 unsigned int mNumberOfCollidingSpheres;
119 unsigned int mNumberOfCollidingSpheresWithFaces;
120 unsigned int mNumberOfCollidingSpheresWithEdges;
134 std::vector<int> mContactingNeighbourIds;
142 std::vector<int> mContactingFaceNeighbourIds;
151 void ClearImpactMemberVariables();
153 void FinalizeForceComputation(BaseBufferType & data_buffer)
override;
157 double LocalElasticContactForce[3],
159 double LocalDeltDisp[3],
161 const double indentation,
162 double ViscoDampingLocalContactForce[3],
163 double& cohesive_force,
166 double LocalCoordSystem[3][3],
167 double OldLocalCoordSystem[3][3],
177 bool IsNewNeighbour(
const int neighbour_id);
179 bool IsNewFaceNeighbour(
const int neighbour_id);
181 void RecordNewImpact(BaseType::ParticleDataBuffer & data_buffer);
183 void RecordNewFaceImpact(BaseType::ParticleDataBuffer & data_buffer);
185 void save(
Serializer& rSerializer)
const override
190 void load(Serializer& rSerializer)
override
206 rOStream << std::endl;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: analytic_spheric_particle.h:90
std::vector< int > mCurrentContactingFaceNeighbourIds
Definition: analytic_spheric_particle.h:98
ParticleDataBuffer(SphericParticle *p_this_particle)
Definition: analytic_spheric_particle.h:93
std::vector< int > mCurrentContactingNeighbourIds
Definition: analytic_spheric_particle.h:97
virtual ~ParticleDataBuffer()
Definition: analytic_spheric_particle.h:95
Definition: analytic_spheric_particle.h:19
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: analytic_spheric_particle.h:61
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: analytic_spheric_particle.h:58
SphericParticle BaseType
Definition: analytic_spheric_particle.h:31
GlobalPointersVector< Condition > ConditionWeakVectorType
Definition: analytic_spheric_particle.h:25
std::unique_ptr< SphericParticle::ParticleDataBuffer > CreateParticleDataBuffer(SphericParticle *p_this_particle) override
Definition: analytic_spheric_particle.h:101
GlobalPointersVector< Element > ParticleWeakVectorType
Definition: analytic_spheric_particle.h:28
std::unique_ptr< BaseType::ParticleDataBuffer > BaseBufferPointerType
Definition: analytic_spheric_particle.h:33
virtual ~AnalyticSphericParticle()
Destructor.
Definition: analytic_spheric_particle.h:45
GlobalPointersVector< Element >::iterator ParticleWeakIteratorType
Definition: analytic_spheric_particle.h:30
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(AnalyticSphericParticle)
Pointer definition of AnalyticSphericParticle.
BaseType::ParticleDataBuffer BaseBufferType
Definition: analytic_spheric_particle.h:32
ParticleWeakVectorType::ptr_iterator ParticleWeakIteratorType_ptr
Definition: analytic_spheric_particle.h:29
GlobalPointersVector< Condition >::iterator ConditionWeakIteratorType
Definition: analytic_spheric_particle.h:26
std::string Info() const override
Turn back information as a string.
Definition: analytic_spheric_particle.h:50
std::size_t IndexType
Definition: flags.h:74
This class is a vector which stores global pointers.
Definition: global_pointers_vector.h:61
boost::indirect_iterator< typename TContainerType::iterator > iterator
Definition: global_pointers_vector.h:79
typename TContainerType::iterator ptr_iterator
Definition: global_pointers_vector.h:85
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: spheric_particle.h:59
Definition: spheric_particle.h:31
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
def load(f)
Definition: ode_solve.py:307