25 #include "intrusive_ptr/intrusive_ptr.hpp"
44 using Pointer = Kratos::intrusive_ptr<Expression>;
167 const IndexType ComponentIndex)
const = 0;
216 virtual std::string
Info()
const = 0;
236 mutable std::atomic<int> mReferenceCounter{0};
240 x->mReferenceCounter.fetch_add(1, std::memory_order_relaxed);
245 if (
x->mReferenceCounter.fetch_sub(1, std::memory_order_release) == 1) {
246 std::atomic_thread_fence(std::memory_order_acquire);
259 std::ostream& rOStream,
262 return rOStream << rThis.
Info();
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: expression.h:54
double value_type
Definition: expression.h:61
std::input_iterator_tag iterator_category
Definition: expression.h:67
IndexType difference_type
Definition: expression.h:59
double & reference
Definition: expression.h:65
KRATOS_CLASS_POINTER_DEFINITION(ExpressionIterator)
double * pointer
Definition: expression.h:63
Base class or all the expression types.
Definition: expression.h:38
virtual double Evaluate(const IndexType EntityIndex, const IndexType EntityDataBeginIndex, const IndexType ComponentIndex) const =0
Evalute the expression for the given entity data start index and component index and returns the valu...
virtual const std::vector< IndexType > GetItemShape() const =0
Get the Shape of the expression.
virtual std::string Info() const =0
IndexType size_type
Definition: expression.h:139
double value_type
Definition: expression.h:137
friend void intrusive_ptr_release(const Expression *x)
Definition: expression.h:243
Expression(const IndexType NumberOfEntities)
Definition: expression.h:147
virtual ~Expression()=default
virtual IndexType GetMaxDepth() const =0
Get the Max Depth of the lazy expression tree.
IndexType NumberOfEntities() const
Get the maximum number of entities allowed for this expression.
Definition: expression.h:181
Kratos::intrusive_ptr< Expression > Pointer
Definition: expression.h:44
std::size_t IndexType
Definition: expression.h:48
Kratos::intrusive_ptr< const Expression > ConstPointer
Definition: expression.h:46
friend void intrusive_ptr_add_ref(const Expression *x)
Definition: expression.h:238
Definition: expression_io.h:69
std::size_t IndexType
The definition of the index type.
Definition: key_hash.h:35
end
Definition: DEM_benchmarks.py:180
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Expression::Pointer operator*(const Expression::ConstPointer &rpLeft, const double Right)
bool operator==(const Flags &Left, const Flags &Right)
Definition: flags.cpp:45
TABLE_NUMBER_ANGULAR_VELOCITY TABLE_NUMBER_MOMENT I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std double
Definition: DEM_application_variables.h:182
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
bool operator!=(const Flags &Left, const Flags &Right)
Definition: flags.cpp:50
x
Definition: sensitivityMatrix.py:49