13 #if !defined(KRATOS_COMPRESSIBLE_PERTURBATION_POTENTIAL_FLOW_ELEMENT_H)
14 #define KRATOS_COMPRESSIBLE_PERTURBATION_POTENTIAL_FLOW_ELEMENT_H
23 #include "utilities/geometry_utilities.h"
46 template <
int Dim,
int NumNodes>
50 template <
unsigned int TNumNodes,
unsigned int TDim>
65 static constexpr
int TDim = Dim;
106 GeometryType::Pointer pGeometry,
107 PropertiesType::Pointer pProperties)
108 :
Element(NewId, pGeometry, pProperties)
145 PropertiesType::Pointer pProperties)
const override;
148 GeometryType::Pointer pGeom,
149 PropertiesType::Pointer pProperties)
const override;
172 std::vector<double>& rValues,
176 std::vector<int>& rValues,
194 std::string
Info()
const override;
197 void PrintInfo(std::ostream& rOStream)
const override;
200 void PrintData(std::ostream& rOStream)
const override;
217 void GetDofListNormalElement(
DofsVectorType& rElementalDofList)
const;
219 void GetDofListKuttaElement(
DofsVectorType& rElementalDofList)
const;
221 void GetDofListWakeElement(
DofsVectorType& rElementalDofList)
const;
223 void CalculateLeftHandSideNormalElement(
MatrixType& rLeftHandSideMatrix,
226 void CalculateRightHandSideNormalElement(
VectorType& rRightHandSideVector,
229 void CalculateLeftHandSideWakeElement(
MatrixType& rLeftHandSideMatrix,
236 void CalculateRightHandSideWakeElement(
VectorType& rRightHandSideVector,
254 void CalculateLeftHandSideSubdividedElement(
Matrix& lhs_positive,
257 void CalculateVolumesSubdividedElement(
double& rUpper_vol,
261 void ComputeLHSGaussPointContribution(
const double weight,
265 void AssignLeftHandSideSubdividedElement(
Matrix& rLeftHandSideMatrix,
273 void AssignLeftHandSideWakeElement(
MatrixType& rLeftHandSideMatrix,
279 void AssignLeftHandSideWakeNode(
MatrixType& rLeftHandSideMatrix,
284 unsigned int row)
const;
286 void AssignRightHandSideWakeNode(
VectorType& rRightHandSideVector,
291 unsigned int& rRow)
const;
303 void save(
Serializer& rSerializer)
const override;
Definition: compressible_perturbation_potential_flow_element.h:48
CompressiblePerturbationPotentialFlowElement(IndexType NewId, GeometryType::Pointer pGeometry)
Definition: compressible_perturbation_potential_flow_element.h:97
~CompressiblePerturbationPotentialFlowElement() override
Definition: compressible_perturbation_potential_flow_element.h:125
CompressiblePerturbationPotentialFlowElement(CompressiblePerturbationPotentialFlowElement &&rOther)=delete
KRATOS_CLASS_INTRUSIVE_POINTER_DEFINITION(CompressiblePerturbationPotentialFlowElement)
CompressiblePerturbationPotentialFlowElement(IndexType NewId=0)
Default constuctor.
Definition: compressible_perturbation_potential_flow_element.h:82
int Check(const ProcessInfo &rCurrentProcessInfo) const override
Definition: compressible_perturbation_potential_flow_element.cpp:148
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: compressible_perturbation_potential_flow_element.cpp:266
CompressiblePerturbationPotentialFlowElement(CompressiblePerturbationPotentialFlowElement const &rOther)=delete
Element::Pointer Clone(IndexType NewId, NodesArrayType const &ThisNodes) const override
It creates a new element pointer and clones the previous element data.
Definition: compressible_perturbation_potential_flow_element.cpp:45
void EquationIdVector(EquationIdVectorType &rResult, const ProcessInfo &CurrentProcessInfo) const override
Definition: compressible_perturbation_potential_flow_element.cpp:89
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: compressible_perturbation_potential_flow_element.cpp:272
Element::Pointer Create(IndexType NewId, NodesArrayType const &ThisNodes, PropertiesType::Pointer pProperties) const override
It creates a new element pointer.
Definition: compressible_perturbation_potential_flow_element.cpp:26
void CalculateRightHandSide(VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: compressible_perturbation_potential_flow_element.cpp:63
CompressiblePerturbationPotentialFlowElement(IndexType NewId, const NodesArrayType &ThisNodes)
Definition: compressible_perturbation_potential_flow_element.h:89
Element BaseType
Definition: compressible_perturbation_potential_flow_element.h:63
void CalculateLocalSystem(MatrixType &rLeftHandSideMatrix, VectorType &rRightHandSideVector, const ProcessInfo &rCurrentProcessInfo) override
Definition: compressible_perturbation_potential_flow_element.cpp:55
CompressiblePerturbationPotentialFlowElement & operator=(CompressiblePerturbationPotentialFlowElement &&rOther)=delete
Move operator.
void GetDofList(DofsVectorType &rElementalDofList, const ProcessInfo &rCurrentProcessInfo) const override
Definition: compressible_perturbation_potential_flow_element.cpp:117
CompressiblePerturbationPotentialFlowElement & operator=(CompressiblePerturbationPotentialFlowElement const &rOther)=delete
Assignment operator.
std::string Info() const override
Turn back information as a string.
Definition: compressible_perturbation_potential_flow_element.cpp:258
CompressiblePerturbationPotentialFlowElement(IndexType NewId, GeometryType::Pointer pGeometry, PropertiesType::Pointer pProperties)
Definition: compressible_perturbation_potential_flow_element.h:105
void CalculateLeftHandSide(MatrixType &rLeftHandSideMatrix, const ProcessInfo &rCurrentProcessInfo) override
Definition: compressible_perturbation_potential_flow_element.cpp:76
static constexpr int TDim
Definition: compressible_perturbation_potential_flow_element.h:65
static constexpr int TNumNodes
Definition: compressible_perturbation_potential_flow_element.h:64
void CalculateOnIntegrationPoints(const Variable< double > &rVariable, std::vector< double > &rValues, const ProcessInfo &rCurrentProcessInfo) override
Definition: compressible_perturbation_potential_flow_element.cpp:175
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
Definition: amatrix_interface.h:41
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
AMatrix::MatrixRow< const TExpressionType > row(AMatrix::MatrixExpression< TExpressionType, TCategory > const &TheExpression, std::size_t RowIndex)
Definition: amatrix_interface.h:649
lhs
Definition: generate_frictional_mortar_condition.py:297
data
Definition: mesh_to_mdpa_converter.py:59
def load(f)
Definition: ode_solve.py:307
Definition: compressible_perturbation_potential_flow_element.h:52
double vol
Definition: compressible_perturbation_potential_flow_element.h:54
BoundedMatrix< double, TNumNodes, TDim > DN_DX
Definition: compressible_perturbation_potential_flow_element.h:56
array_1d< double, TNumNodes > distances
Definition: compressible_perturbation_potential_flow_element.h:53
array_1d< double, TNumNodes > N
Definition: compressible_perturbation_potential_flow_element.h:57
array_1d< double, TNumNodes > potentials
Definition: compressible_perturbation_potential_flow_element.h:53