KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
singlespherecluster3D.h
Go to the documentation of this file.
1 //
2 // Project Name: Kratos
3 // Last Modified by: $Author: Salva $
4 // Date: $Date: 2014-09-25 16:07:33 $
5 // Revision: $Revision: 1.1.1.1 $
6 //
7 //
8 
9 #if !defined(KRATOS_SINGLE_SPHERE_CLUSTER3D_H_INCLUDED )
10 #define KRATOS_SINGLE_SPHERE_CLUSTER3D_H_INCLUDED
11 
12 // System includes
13 #include <string>
14 #include <iostream>
15 #include <cmath>
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/define.h"
21 #include "includes/node.h"
22 #include "geometries/geometry.h"
23 #include "includes/properties.h"
28 
29 #include "includes/condition.h"
31 
32 namespace Kratos
33 {
34  class Element;
35  class ProcessInfo;
36 
38  {
39  public:
40 
42 
44  SingleSphereCluster3D( IndexType NewId, GeometryType::Pointer pGeometry );
45  SingleSphereCluster3D( IndexType NewId, NodesArrayType const& ThisNodes);
46  SingleSphereCluster3D( IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties );
47 
48  Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
49 
51  virtual ~SingleSphereCluster3D();
52 
53  void Initialize(const ProcessInfo& r_process_info) override;
54  virtual void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo& r_process_info) override;
55 
56  double SlowGetDensity() override;
57  int SlowGetParticleMaterial() override;
58 
59  virtual std::string Info() const override
60  {
61  std::stringstream buffer;
62  buffer << "Discrete Element #" << Id();
63  return buffer.str();
64  }
65 
67  virtual void PrintInfo(std::ostream& rOStream) const override
68  {
69  rOStream << "Discrete Element #" << Id();
70  }
71 
73  virtual void PrintData(std::ostream& rOStream) const override {}
74 
75  protected:
76 
77  private:
78 
79  }; // Class SingleSphereCluster3D
80 
82  inline std::istream& operator >> (std::istream& rIStream,
83  SingleSphereCluster3D& rThis){
84  return rIStream;
85  }
86 
88  inline std::ostream& operator << (std::ostream& rOStream,
89  const SingleSphereCluster3D& rThis)
90  {
91  rThis.PrintInfo(rOStream);
92  rOStream << std::endl;
93  rThis.PrintData(rOStream);
94 
95  return rOStream;
96  }
97 } // namespace Kratos.
98 
99 #endif // KRATOS_SINGLE_SPHERE_CLUSTER3D_INCLUDED defined
Definition: cluster3D.h:29
virtual void Initialize(const ProcessInfo &rCurrentProcessInfo)
Definition: element.h:341
std::size_t IndexType
Definition: flags.h:74
IndexType Id() const
Definition: indexed_object.h:107
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
Definition: singlespherecluster3D.h:38
virtual void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &r_process_info) override
Definition: singlespherecluster3D.cpp:112
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: singlespherecluster3D.h:73
int SlowGetParticleMaterial() override
Definition: singlespherecluster3D.cpp:115
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(SingleSphereCluster3D)
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: singlespherecluster3D.h:67
virtual ~SingleSphereCluster3D()
Destructor.
Definition: singlespherecluster3D.cpp:43
virtual std::string Info() const override
Turn back information as a string.
Definition: singlespherecluster3D.h:59
SingleSphereCluster3D()
Definition: singlespherecluster3D.cpp:27
double SlowGetDensity() override
Definition: singlespherecluster3D.cpp:114
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
It creates a new element pointer.
Definition: singlespherecluster3D.cpp:38
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
ProcessInfo
Definition: edgebased_PureConvection.py:116