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.
line_heat_flux_condition.hpp
Go to the documentation of this file.
1 //
2 // Project Name: KratosSolidMechanicsApplication $
3 // Created by: $Author: JMCarbonell $
4 // Last modified by: $Co-Author: $
5 // Date: $Date: July 2013 $
6 // Revision: $Revision: 0.0 $
7 //
8 //
9 
10 #if !defined(KRATOS_LINE_HEAT_FLUX_CONDITION_H_INCLUDED )
11 #define KRATOS_LINE_HEAT_FLUX_CONDITION_H_INCLUDED
12 
13 // System includes
14 
15 // External includes
16 
17 // Project includes
18 #include "includes/condition.h"
19 
20 
21 namespace Kratos
22 {
23 
26 
30 
34 
38 
42 
44 
48  : public Condition
49 {
50 public:
53 
56 
60 
62  LineHeatFluxCondition( IndexType NewId, GeometryType::Pointer pGeometry );
63  LineHeatFluxCondition( IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties );
64 
66  ~LineHeatFluxCondition() override;
67 
71 
75 
76  Condition::Pointer Create( IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties ) const override;
77 
78  void CalculateLocalSystem( MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo ) override;
79 
80  void CalculateRightHandSide( VectorType& rRightHandSideVector, const ProcessInfo& rCurrentProcessInfo ) override;
81 
82  void EquationIdVector( EquationIdVectorType& rResult, const ProcessInfo& rCurrentProcessInfo ) const override;
83 
84  void GetDofList( DofsVectorType& rConditionalDofList, const ProcessInfo& rCurrentProcessInfo ) const override;
85 
86  void CalculateMassMatrix( MatrixType& rMassMatrix, const ProcessInfo& rCurrentProcessInfo ) override;
87 
88  void CalculateDampingMatrix( MatrixType& rDampingMatrix, const ProcessInfo& rCurrentProcessInfo ) override;
89 
97  int Check( const ProcessInfo& rCurrentProcessInfo ) const override;
111 
112 protected:
134 
135 private:
144 
145  void CalculateElementalSystem( MatrixType& rLeftHandSideMatrix, VectorType& rRightHandSideVector,
146  const ProcessInfo& rCurrentProcessInfo,
147  bool CalculateStiffnessMatrixFlag,
148  bool CalculateResidualVectorFlag);
149 
150 
151  void CalculateAndSubKheatflux(Matrix& rK,
152  const Matrix& rDN_De,
153  const Vector& rN,
154  double rFlux,
155  double rIntegrationWeight);
156 
157 
158  void CalculateAndAddFaceHeatFlux (Vector& rF,
159  const Vector& rN,
160  Vector& rNormal,
161  double rFlux,
162  double rIntegrationWeight );
163 
167 
168 
172 
173 
177 
181 
182  friend class Serializer;
183 
184  // A private default constructor necessary for serialization
186 
187  void save( Serializer& rSerializer ) const override
188  {
190  }
191 
192  void load( Serializer& rSerializer ) override
193  {
195  }
196 
197 
201 
203  //LineHeatFluxCondition& operator=(const LineHeatFluxCondition& rOther);
204 
206  //LineHeatFluxCondition(const LineHeatFluxCondition& rOther);
207 
208 
210 
211 }; // Class LineHeatFluxCondition
212 
214 
217 
221 
222 } // namespace Kratos.
223 
224 #endif // KRATOS_LINE_HEAT_FLUX_CONDITION_H_INCLUDED defined
Base class for all Conditions.
Definition: condition.h:59
std::vector< std::size_t > EquationIdVectorType
Definition: condition.h:98
std::vector< DofType::Pointer > DofsVectorType
Definition: condition.h:100
Condition(IndexType NewId=0)
Definition: condition.h:123
std::size_t IndexType
Definition: flags.h:74
Short class definition.
Definition: line_heat_flux_condition.hpp:49
void GetDofList(DofsVectorType &rConditionalDofList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: line_heat_flux_condition.cpp:252
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: line_heat_flux_condition.cpp:61
void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override
Definition: line_heat_flux_condition.cpp:234
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: line_heat_flux_condition.cpp:285
Condition::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
It creates a new condition pointer.
Definition: line_heat_flux_condition.cpp:37
void CalculateMassMatrix(MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: line_heat_flux_condition.cpp:263
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: line_heat_flux_condition.cpp:49
friend class Serializer
Definition: line_heat_flux_condition.hpp:182
void CalculateDampingMatrix(MatrixType &rDampingMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: line_heat_flux_condition.cpp:275
~LineHeatFluxCondition() override
Destructor.
Definition: line_heat_flux_condition.cpp:42
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(LineHeatFluxCondition)
Counted pointer of LineHeatFluxCondition.
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