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.
Point_Neumann2D.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3 KratosPFEMApplication
4 A library based on:
5 Kratos
6 A General Purpose Software for Multi-Physics Finite Element Analysis
7 Version 1.0 (Released on march 05, 2007).
8 
9 Copyright 2007
10 Pooyan Dadvand, Riccardo Rossi
11 pooyan@cimne.upc.edu
12 rrossi@cimne.upc.edu
13 - CIMNE (International Center for Numerical Methods in Engineering),
14 Gran Capita' s/n, 08034 Barcelona, Spain
15 
16 
17 Permission is hereby granted, free of charge, to any person obtaining
18 a copy of this software and associated documentation files (the
19 "Software"), to deal in the Software without restriction, including
20 without limitation the rights to use, copy, modify, merge, publish,
21 distribute, sublicense and/or sell copies of the Software, and to
22 permit persons to whom the Software is furnished to do so, subject to
23 the following condition:
24 
25 Distribution of this code for any commercial purpose is permissible
26 ONLY BY DIRECT ARRANGEMENT WITH THE COPYRIGHT OWNERS.
27 
28 The above copyright notice and this permission notice shall be
29 included in all copies or substantial portions of the Software.
30 
31 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
33 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
34 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
35 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
36 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
37 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
38 
39 ==============================================================================
40 */
41 
42 //
43 // Project Name: Kratos
44 // Last Modified by: $Author: rrossi $
45 // Date: $Date: 2007-08-28 08:42:05 $
46 // Revision: $Revision: 1.1 $
47 //
48 //
49 
50 
51 #if !defined(KRATOS_POINT_NEUMANN2D_CONDITION_H_INCLUDED )
52 #define KRATOS_POINT_NEUMANN2D_CONDITION_H_INCLUDED
53 
54 
55 
56 // System includes
57 
58 
59 // External includes
60 #include "boost/smart_ptr.hpp"
61 
62 
63 // Project includes
64 #include "includes/define.h"
65 #include "includes/condition.h"
67 #include "includes/variables.h"
68 
69 
70 namespace Kratos
71 {
72 
75 
79 
83 
87 
91 
93 
96  : public Condition
97  {
98  public:
101 
104 
108 
111  PointNeumann2D(IndexType NewId, GeometryType::Pointer pGeometry);
112  PointNeumann2D(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties);
113 
115  ~PointNeumann2D() override;
116 
117 
121 
122 
126 
127  Condition::Pointer Create(IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const;
128 
129  void CalculateLocalSystem(MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, ProcessInfo& rCurrentProcessInfo);
130 
131  void CalculateRightHandSide(VectorType& rRightHandSideVector, ProcessInfo& rCurrentProcessInfo);
132  //virtual void CalculateLeftHandSide(MatrixType& rLeftHandSideMatrix, ProcessInfo& rCurrentProcessInfo);
133 
134  void EquationIdVector(EquationIdVectorType& rResult, ProcessInfo& rCurrentProcessInfo);
135 
136  void GetDofList(DofsVectorType& ConditionalDofList,ProcessInfo& CurrentProcessInfo);
137  //void CalculateLocalVelocityContribution(MatrixType& rDampMatrix,VectorType& rRightHandSideVector,ProcessInfo& rCurrentProcessInfo);
138  void GetFirstDerivativesVector(Vector& values, int Step = 0);
139  void GetSecondDerivativesVector(Vector& values, int Step = 0);
140 
144 
145 
149 
150 
154 
156 // virtual String Info() const;
157 
159 // virtual void PrintInfo(std::ostream& rOStream) const;
160 
162 // virtual void PrintData(std::ostream& rOStream) const;
163 
164 
168 
169 
171 
172  protected:
175 
176 
180 
181 
185 
186 
190 
191 
195 
196 
200 
201 
205 
206 
208 
209  private:
212 
213 
217 
218 
219 
223  void CalculateAll(MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector,
224  ProcessInfo& rCurrentProcessInfo,
225  bool CalculateStiffnessMatrixFlag,
226  bool CalculateResidualVectorFlag);
227 
228 
232 
233 
237 
238 
242 
243 
247 
249  //PointNeumann2D& operator=(const PointNeumann2D& rOther);
250 
252  //PointNeumann2D(const PointNeumann2D& rOther);
253 
254 
256 
257  }; // Class PointNeumann2D
258 
260 
263 
264 
268 
269 
271 /* inline std::istream& operator >> (std::istream& rIStream,
272  PointNeumann2D& rThis);
273 */
275 /* inline std::ostream& operator << (std::ostream& rOStream,
276  const PointNeumann2D& rThis)
277  {
278  rThis.PrintInfo(rOStream);
279  rOStream << std::endl;
280  rThis.PrintData(rOStream);
281 
282  return rOStream;
283  }*/
285 
286 } // namespace Kratos.
287 
288 #endif // KRATOS_POINT_NEUMANN2D_CONDITION_H_INCLUDED defined
289 
290 
Base class for all Conditions.
Definition: condition.h:59
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
Matrix MatrixType
Definition: condition.h:90
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
Short class definition.
Definition: Point_Neumann2D.h:97
void GetDofList(DofsVectorType &ConditionalDofList, ProcessInfo &CurrentProcessInfo)
Definition: Point_Neumann2D.cpp:249
~PointNeumann2D() override
Destructor.
Definition: Point_Neumann2D.cpp:87
void GetSecondDerivativesVector(Vector &values, int Step=0)
Definition: Point_Neumann2D.cpp:290
KRATOS_CLASS_POINTER_DEFINITION(PointNeumann2D)
Counted pointer of PointNeumann2D.
void CalculateRightHandSide(VectorType &rRightHandSideVector, ProcessInfo &rCurrentProcessInfo)
Definition: Point_Neumann2D.cpp:94
void EquationIdVector(EquationIdVectorType &rResult, ProcessInfo &rCurrentProcessInfo)
Definition: Point_Neumann2D.cpp:225
void GetFirstDerivativesVector(Vector &values, int Step=0)
Definition: Point_Neumann2D.cpp:271
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, ProcessInfo &rCurrentProcessInfo)
Definition: Point_Neumann2D.cpp:105
Condition::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const
It creates a new condition pointer.
Definition: Point_Neumann2D.cpp:81
PointNeumann2D()
Default constructor.
Definition: Point_Neumann2D.h:110
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
ModelPart::NodesContainerType NodesArrayType
Definition: gid_gauss_point_container.h:42
list values
Definition: bombardelli_test.py:42