13 #ifndef KRATOS_QS_CONVECTION_DIFFUSION_EXPLICIT_H
14 #define KRATOS_QS_CONVECTION_DIFFUSION_EXPLICIT_H
29 #include "utilities/geometry_utilities.h"
69 template<
unsigned int TDim,
unsigned int TNumNodes>
90 GeometryType::Pointer pGeometry);
94 GeometryType::Pointer pGeometry,
95 Properties::Pointer pProperties);
114 Properties::Pointer pProperties)
const override;
118 GeometryType::Pointer pGeom,
119 Properties::Pointer pProperties)
const override;
132 const ProcessInfo& rCurrentProcessInfo)
const override;
136 const ProcessInfo& rCurrentProcessInfo)
const override;
163 std::string
Info()
const override
165 return "QSConvectionDiffusionExplicitElement #";
171 rOStream <<
Info() <<
Id();
261 void save(
Serializer& rSerializer)
const override
285 void QSCalculateRightHandSideInternal(
286 BoundedVector<double, TNumNodes>& rRightHandSideBoundedVector,
289 void QSCalculateOrthogonalSubgridScaleRHSInternal(
290 BoundedVector<double, TNumNodes>& rRightHandSideVector,
293 void QSCalculateTau(ElementData& rData);
323 template<
unsigned int TDim,
unsigned int TNumNodes = TDim + 1>
325 std::istream& rIStream,
332 template<
unsigned int TDim,
unsigned int TNumNodes = TDim + 1>
334 std::ostream& rOStream,
338 rOStream << std::endl;
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Base class for all Elements.
Definition: element.h:60
std::vector< DofType::Pointer > DofsVectorType
Definition: element.h:100
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: element.h:1135
std::vector< std::size_t > EquationIdVectorType
Definition: element.h:98
std::size_t IndexType
Definition: flags.h:74
IntegrationMethod
Definition: geometry_data.h:76
Geometry base class.
Definition: geometry.h:71
IndexType Id() const
Definition: indexed_object.h:107
This class defines the node.
Definition: node.h:65
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
This element solves the convection-diffusion equation, stabilized with algebraic subgrid scale or ort...
Definition: qs_convection_diffusion_explicit.h:71
void CalculateLumpedMassVector(VectorType &rLumpedMassVector, const ProcessInfo &rCurrentProcessInfo) const override
Definition: qs_convection_diffusion_explicit.cpp:218
void AddExplicitContribution(const ProcessInfo &rCurrentProcessInfo) override
Definition: qs_convection_diffusion_explicit.cpp:141
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(QSConvectionDiffusionExplicit)
Pointer definition of QSConvectionDiffusionExplicit.
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: qs_convection_diffusion_explicit.cpp:68
QSConvectionDiffusionExplicit()
Definition: qs_convection_diffusion_explicit.h:240
Element BaseType
Definition: qs_convection_diffusion_explicit.h:76
std::string Info() const override
Turn back information as a string.
Definition: qs_convection_diffusion_explicit.h:163
IntegrationMethod GetIntegrationMethod() const override
Definition: qs_convection_diffusion_explicit.cpp:925
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: qs_convection_diffusion_explicit.h:169
virtual ~QSConvectionDiffusionExplicit()
Default constuctor.
Definition: qs_convection_diffusion_explicit.cpp:39
void GetDofList(DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: qs_convection_diffusion_explicit.cpp:118
void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &rCurrentProcessInfo) const override
Definition: qs_convection_diffusion_explicit.cpp:95
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, Properties::Pointer pProperties) const override
Definition: qs_convection_diffusion_explicit.cpp:45
void Calculate(const Variable< double > &rVariable, double &Output, const ProcessInfo &rCurrentProcessInfo) override
Definition: qs_convection_diffusion_explicit.cpp:236
Geometry< NodeType > GeometryType
Definition: qs_convection_diffusion_explicit.h:78
Node NodeType
Definition: qs_convection_diffusion_explicit.h:77
void CalculateMassMatrix(MatrixType &rMassMatrix, const ProcessInfo &rCurrentProcessInfo) override
void InitializeEulerianElement(ElementData &rData, const ProcessInfo &rCurrentProcessInfo)
Definition: qs_convection_diffusion_explicit.cpp:266
double ComputeH(BoundedMatrix< double, TNumNodes, TDim > &rDN_DX)
Definition: qs_convection_diffusion_explicit.cpp:861
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: qs_convection_diffusion_explicit.cpp:82
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
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
def load(f)
Definition: ode_solve.py:307
Definition: qs_convection_diffusion_explicit.h:182
array_1d< double, TNumNodes > N
Definition: qs_convection_diffusion_explicit.h:204
array_1d< double, TNumNodes > unknown
Definition: qs_convection_diffusion_explicit.h:195
array_1d< double, TNumNodes > tau
Definition: qs_convection_diffusion_explicit.h:193
double delta_time
Definition: qs_convection_diffusion_explicit.h:187
array_1d< double, TNumNodes > unknown_old
Definition: qs_convection_diffusion_explicit.h:196
array_1d< double, TNumNodes > forcing
Definition: qs_convection_diffusion_explicit.h:194
BoundedMatrix< double, TNumNodes, 3 > convective_velocity
Definition: qs_convection_diffusion_explicit.h:199
array_1d< double, TNumNodes > rhs
Definition: qs_convection_diffusion_explicit.h:202
double lumping_factor
Definition: qs_convection_diffusion_explicit.h:185
double explicit_step_coefficient
Definition: qs_convection_diffusion_explicit.h:188
double unknown_subscale
Definition: qs_convection_diffusion_explicit.h:190
BoundedMatrix< double, TNumNodes, TNumNodes > lhs
Definition: qs_convection_diffusion_explicit.h:201
array_1d< double, TNumNodes > oss_projection
Definition: qs_convection_diffusion_explicit.h:197
double volume
Definition: qs_convection_diffusion_explicit.h:191
BoundedMatrix< double, TNumNodes, TDim > DN_DX
Definition: qs_convection_diffusion_explicit.h:206
double diffusivity
Definition: qs_convection_diffusion_explicit.h:184
double dynamic_tau
Definition: qs_convection_diffusion_explicit.h:189
BoundedMatrix< double, TNumNodes, TNumNodes > N_gausspoint
Definition: qs_convection_diffusion_explicit.h:205
double weight
Definition: qs_convection_diffusion_explicit.h:186