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.
laplacian_element.h
Go to the documentation of this file.
1 // KRATOS ___ ___ _ ___ __ ___ ___ ___ ___
2 // / __/ _ \| \| \ \ / /__| \_ _| __| __|
3 // | (_| (_) | .` |\ V /___| |) | || _|| _|
4 // \___\___/|_|\_| \_/ |___/___|_| |_| APPLICATION
5 //
6 // License: BSD License
7 // Kratos default license: kratos/license.txt
8 //
9 // Main authors: Riccardo Rossi
10 //
11 
12 #if !defined(KRATOS_LAPLACIAN_ELEMENT_H_INCLUDED )
13 #define KRATOS_LAPLACIAN_ELEMENT_H_INCLUDED
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/define.h"
21 #include "includes/element.h"
23 #include "includes/variables.h"
24 
25 
26 namespace Kratos
27 {
28 
31 
35 
39 
43 
47 
49 
52  : public Element
53 {
54 public:
57 
60 
64 
66  LaplacianElement(IndexType NewId, GeometryType::Pointer pGeometry);
67  LaplacianElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
68 
70  virtual ~LaplacianElement();
71 
72 
76 
77 
81 
82  Element::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const override;
83 
84  Element::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;
85 
86  void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
87 
88  void CalculateLeftHandSide(MatrixType& rLeftHandSideMatrix, const ProcessInfo& rCurrentProcessInfo) override;
89 
90  void CalculateRightHandSide(VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo) override;
91 
92  void EquationIdVector(EquationIdVectorType& rResult, const ProcessInfo& rCurrentProcessInfo) const override;
93 
94  void GetDofList(DofsVectorType& ElementalDofList, const ProcessInfo& CurrentProcessInfo) const override;
95 
96  int Check(const ProcessInfo& rCurrentProcessInfo) const override;
97 
101 
102 
106 
107  IntegrationMethod GetIntegrationMethod() const override;
108 
112 
116 
117 
119 
120 protected:
123 
124 
128 
129 
133 
134 
138 
139 
143 
144 
148 
149 
153 
154  // Protected default constructor necessary for serialization
156  {
157  }
158 
160 
161 private:
164 
165 
169 
170 
174  friend class Serializer;
175 
176  void save(Serializer& rSerializer) const override
177  {
179  }
180 
181  void load(Serializer& rSerializer) override
182  {
184  }
185 
189 
190 
194 
195 
199 
200 
204 
205 
209 
211  //LaplacianElement& operator=(const LaplacianElement& rOther);
212 
214  //LaplacianElement(const LaplacianElement& rOther);
215 
216 
218 
219 }; // Class LaplacianElement
220 
222 
225 
226 
230 
231 
233 /* inline std::istream& operator >> (std::istream& rIStream,
234  LaplacianElement& rThis);
235 */
237 /* inline std::ostream& operator << (std::ostream& rOStream,
238  const LaplacianElement& rThis)
239  {
240  rThis.PrintInfo(rOStream);
241  rOStream << std::endl;
242  rThis.PrintData(rOStream);
243 
244  return rOStream;
245  }*/
247 
248 } // namespace Kratos.
249 
250 #endif // KRATOS_LAPLACIAN_ELEMENT_H_INCLUDED defined
251 
252 
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
IntegrationMethod
Definition: geometry_data.h:76
Short class definition.
Definition: laplacian_element.h:53
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: laplacian_element.cpp:60
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: laplacian_element.cpp:197
void GetDofList(DofsVectorType &ElementalDofList, const ProcessInfo &CurrentProcessInfo) const override
Definition: laplacian_element.cpp:178
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(LaplacianElement)
Counted pointer of LaplacianElement.
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: laplacian_element.cpp:151
LaplacianElement()
Definition: laplacian_element.h:155
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: laplacian_element.cpp:143
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
It creates a new element pointer.
Definition: laplacian_element.cpp:44
void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override
Definition: laplacian_element.cpp:159
virtual ~LaplacianElement()
Destructor.
Definition: laplacian_element.cpp:54
IntegrationMethod GetIntegrationMethod() const override
Definition: laplacian_element.cpp:228
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
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307