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_adaptive_simpson.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_ADAPTIVE_SIMPSON_H_INCLUDED)
10 #define NUMERICAL_INTEGRATION_METHOD_ADAPTIVE_SIMPSON_H_INCLUDED
11 
12 // System includes
13 #include <limits>
14 
15 // External includes
16 #include "includes/define.h"
17 #include "includes/model_part.h"
18 
19 // Project includes
21 
22 namespace Kratos
23 {
24  class KRATOS_API(THERMAL_DEM_APPLICATION) AdaptiveSimpsonQuadrature : public NumericalIntegrationMethod
25  {
26  public:
27 
28  // Pointer definition
30 
31  // Constructor / Destructor
33  virtual ~AdaptiveSimpsonQuadrature();
34 
35  // Public methods
36  void SetNumericalIntegrationMethodInProperties (Properties::Pointer pProp, bool verbose = true) const override;
37  double SolveIntegral (void) override;
38 
39  // Clone
42  return cloned_utl;
43  }
44 
45  NumericalIntegrationMethod::Pointer CloneShared() const override {
46  NumericalIntegrationMethod::Pointer cloned_utl(new AdaptiveSimpsonQuadrature(*this));
47  return cloned_utl;
48  }
49 
50  protected:
51 
52  // Protected methods
53  double RecursiveIntegration (double a, double b, double fa, double fb, double fc);
54 
55  private:
56 
57  // Assignment operator / Copy constructor
58  AdaptiveSimpsonQuadrature& operator=(AdaptiveSimpsonQuadrature const& rOther) {return *this;}
59  AdaptiveSimpsonQuadrature(AdaptiveSimpsonQuadrature const& rOther) {*this = rOther;}
60 
61  }; // Class AdaptiveSimpsonQuadrature
62 } // namespace Kratos
63 
64 #endif // NUMERICAL_INTEGRATION_METHOD_ADAPTIVE_SIMPSON_H_INCLUDED
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Definition: numerical_integration_adaptive_simpson.h:25
KRATOS_CLASS_POINTER_DEFINITION(AdaptiveSimpsonQuadrature)
NumericalIntegrationMethod::Pointer CloneShared() const override
Definition: numerical_integration_adaptive_simpson.h:45
NumericalIntegrationMethod * CloneRaw() const override
Definition: numerical_integration_adaptive_simpson.h:40
Definition: numerical_integration_method.h:23
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
a
Definition: generate_stokes_twofluid_element.py:77
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31