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.
helmholtz_bulk_element.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // license: OptimizationApplication/license.txt
9 //
10 // Main authors: Reza Najian Asl
11 //
12 
13 #if !defined(KRATOS_HELMHOLTZ_BULK_ELEMENT_H_INCLUDED )
14 #define KRATOS_HELMHOLTZ_BULK_ELEMENT_H_INCLUDED
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
21 #include "includes/define.h"
22 #include "includes/element.h"
24 #include "utilities/geometry_utilities.h"
26 #include "includes/variables.h"
28 
29 
30 namespace Kratos
31 {
32 
35 
39 
43 
47 
51 
53 
60 class KRATOS_API(OPTIMIZATION_APPLICATION) HelmholtzBulkElement
61  : public Element
62 {
63 public:
66 
69 
73 
75  HelmholtzBulkElement(IndexType NewId, GeometryType::Pointer pGeometry);
76  HelmholtzBulkElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
77 
79  virtual ~HelmholtzBulkElement();
80 
81 
85 
86 
90 
91  Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
92 
93  Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;
94 
95  void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
96 
97  void CalculateLeftHandSide(MatrixType& rLeftHandSideMatrix, const ProcessInfo& rCurrentProcessInfo) override;
98 
99  void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
100 
101  void EquationIdVector(EquationIdVectorType& rResult, const ProcessInfo& rCurrentProcessInfo) const override;
102 
103  void GetDofList(DofsVectorType& ElementalDofList, const ProcessInfo& CurrentProcessInfo) const override;
104 
105  void GetValuesVector(VectorType &rValues, int Step = 0) const override;
106 
107  void Calculate(const Variable<Matrix>& rVariable, Matrix& rOutput, const ProcessInfo& rCurrentProcessInfo) override;
108 
109  int Check(const ProcessInfo& rCurrentProcessInfo) const override;
110 
114 
115 
119 
123 
127 
128 
130 
131 protected:
134 
135 
139 
140 
144 
145 
149 
150 
154 
155 
159 
160 
164 
165  // Protected default constructor necessary for serialization
167  {
168  }
169 
171 
172 private:
175 
176 
180 
181 
185  friend class Serializer;
186 
187  void save(Serializer& rSerializer) const override
188  {
190  }
191 
192  void load(Serializer& rSerializer) override
193  {
195  }
196 
200 
201 
205  void CalculateBulkMassMatrix(MatrixType& rMassMatrix,const ProcessInfo& rCurrentProcessInfo) const;
206  void CalculateBulkStiffnessMatrix(MatrixType& rStiffnessMatrix,const ProcessInfo& rCurrentProcessInfo) const;
207 
211 
212 
216 
217 
221 
223  //HelmholtzBulkElement& operator=(const HelmholtzBulkElement& rOther);
224 
226  //HelmholtzBulkElement(const HelmholtzBulkElement& rOther);
227 
228 
230 
231 }; // Class HelmholtzBulkElement
232 
234 
237 
238 
242 
243 
245 /* inline std::istream& operator >> (std::istream& rIStream,
246  HelmholtzBulkElement& rThis);
247 */
249 /* inline std::ostream& operator << (std::ostream& rOStream,
250  const HelmholtzBulkElement& rThis)
251  {
252  rThis.PrintInfo(rOStream);
253  rOStream << std::endl;
254  rThis.PrintData(rOStream);
255 
256  return rOStream;
257  }*/
259 
260 } // namespace Kratos.
261 
262 #endif // KRATOS_HELMHOLTZ_BULK_ELEMENT_H_INCLUDED defined
263 
264 
Base class for all Elements.
Definition: element.h:60
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
std::size_t IndexType
Definition: flags.h:74
Short class definition.
Definition: helmholtz_bulk_element.h:62
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(HelmholtzBulkElement)
Counted pointer of HelmholtzBulkElement.
HelmholtzBulkElement()
Definition: helmholtz_bulk_element.h:166
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Matrix MatrixType
Definition: geometrical_transformation_utilities.h:55
Modeler::Pointer Create(const std::string &ModelerName, Model &rModel, const Parameters ModelParameters)
Checks if the modeler is registered.
Definition: modeler_factory.cpp:30
TDataType Calculate(GeometryType &dummy, const Variable< TDataType > &rVariable)
Definition: add_geometries_to_python.cpp:103
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ProcessInfo
Definition: edgebased_PureConvection.py:116
def load(f)
Definition: ode_solve.py:307