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.
numerical_integration_method.h
Go to the documentation of this file.
1 // Kratos Multi-Physics - ThermalDEM Application
2 //
3 // License: BSD License
4 // Kratos default license: kratos/license.txt
5 //
6 // Main authors: Rafael Rangel (rrangel@cimne.upc.edu)
7 //
8 
9 #if !defined(NUMERICAL_INTEGRATION_METHOD_H_INCLUDED)
10 #define NUMERICAL_INTEGRATION_METHOD_H_INCLUDED
11 
12 // System includes
13 
14 // External includes
15 #include "includes/define.h"
16 #include "includes/model_part.h"
17 
18 // Project includes
19 
20 namespace Kratos
21 {
22  class KRATOS_API(THERMAL_DEM_APPLICATION) NumericalIntegrationMethod
23  {
24  public:
25 
26  // Pointer definition
28 
29  // Constructor / Destructor
31  virtual ~NumericalIntegrationMethod();
32 
33  // Generic parameters used in integral expression functions
35  {
36  double p1, p2, p3, p4, p5, p6, p7, p8, p9, p10;
37  };
38 
39  // Public methods
40  virtual void SetNumericalIntegrationMethodInProperties (Properties::Pointer pProp, bool verbose = true) const;
41  virtual double SolveIntegral (void);
42  void CleanParameters (void);
43 
44  // Public members
45  double mLimMin; // minimum limit of integration domain
46  double mLimMax; // maximum limit of integration domain
47  double mCoord; // evaluation point in integration domain
48  double mTol; // tolerance for recursive methods
49  double (*mpEvalIntegrand)(NumericalIntegrationMethod*); // pointer to function to evaluate the integrand
51 
52  // Clone
55  return cloned_utl;
56  }
57 
58  virtual NumericalIntegrationMethod::Pointer CloneShared() const {
59  NumericalIntegrationMethod::Pointer cloned_utl(new NumericalIntegrationMethod(*this));
60  return cloned_utl;
61  }
62 
63  private:
64 
65  // Assignment operator / Copy constructor
67  NumericalIntegrationMethod(NumericalIntegrationMethod const& rOther) {*this = rOther;}
68 
69  // Serializer
70  friend class Serializer;
71 
72  virtual void save(Serializer& rSerializer) const {
73  //rSerializer.save("MyMemberName",myMember);
74  }
75 
76  virtual void load(Serializer& rSerializer) {
77  //rSerializer.load("MyMemberName",myMember);
78  }
79 
80  }; // Class NumericalIntegrationMethod
81 } // namespace Kratos
82 
83 #endif // NUMERICAL_INTEGRATION_METHOD_H_INCLUDED
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: numerical_integration_method.h:23
KRATOS_CLASS_POINTER_DEFINITION(NumericalIntegrationMethod)
double mCoord
Definition: numerical_integration_method.h:47
virtual NumericalIntegrationMethod * CloneRaw() const
Definition: numerical_integration_method.h:53
virtual NumericalIntegrationMethod::Pointer CloneShared() const
Definition: numerical_integration_method.h:58
double mLimMax
Definition: numerical_integration_method.h:46
IntegrandParams mParams
Definition: numerical_integration_method.h:50
double mTol
Definition: numerical_integration_method.h:48
double mLimMin
Definition: numerical_integration_method.h:45
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
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
def load(f)
Definition: ode_solve.py:307
Definition: numerical_integration_method.h:35
double p1
Definition: numerical_integration_method.h:36