CFE_Integration.h 1.07 KB
Newer Older
1
2
3
4
5
6
7
8
#ifndef AMDIS_CFE_INTEGRATION_H
#define AMDIS_CFE_INTEGRATION_H

#include "ElementFunction.h"
#include "MemoryManager.h"
#include "Quadrature.h"
#include "ElementLevelSet.h"

9
10
11
12
13
14
namespace AMDiS {

  class CFE_Integration
  {
  public:
    MEMORY_MANAGED(CFE_Integration);
15

16
17
18
19
20
21
22
23
    /**
     * Calculates integral of function f on domain where level set function
     * is negative.
     */
    static double integrate_onNegLs(ElementFunction<double> *f, 
				    ElementLevelSet *elLS,
				    int deg = 1, 
				    Quadrature *q = NULL);
24

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    /**
     * Calculates surface integral of function f on the zero level set.
     *
     * Note: Quadrature q is a quadrature formula for dimension dim-1.
     */
    static double integrate_onZeroLs(ElementFunction<double> *f, 
				     ElementLevelSet *elLS,
				     int deg = 1, 
				     Quadrature *q = NULL);
  protected:
    /**
     * Calculates determinant for surface given through surfVert.
     */
    static double calcSurfaceDet(ElInfo *loc_elInfo,
				 VectorOfFixVecs<DimVec<double> > &surfVert);
  };
41

42
}
43
44

#endif  // AMDIS_CFE_INTEGRATION_H