Branch data Line data Source code
1 : : /*
2 : : * SizingFunctionVar.hpp
3 : : *
4 : : * Created on: Jun 24, 2011
5 : : * Author: iulian
6 : : */
7 : :
8 : : #ifndef SIZINGFUNCTIONVAR_HPP_
9 : : #define SIZINGFUNCTIONVAR_HPP_
10 : :
11 : : #include "meshkit/SizingFunction.hpp"
12 : :
13 : : namespace MeshKit {
14 : :
15 : : class SizingFunctionVar: public MeshKit::SizingFunction
16 : : {
17 : : public:
18 : : SizingFunctionVar(MKCore *mkcore, int num_int = -1, double int_size = -1.0);
19 : : virtual ~SizingFunctionVar();
20 : :
21 : : // the function would be something like
22 : : // a(x-x0)+b(y-y0)+c(z-z0)+d
23 : : // at fixed point, the mesh size returned would be d
24 : : // these should be either read from a file, or
25 : : // passed as arguments to the test / usage scenario
26 : : void set_linear_coeff(double * fixedPoint, double * coeff);
27 : :
28 : : // another version, easier to pythonize
29 : : void set_coeff(double x0, double y0, double c0, double a,
30 : : double b, double c, double d);
31 : :
32 : : virtual double size(double *xyz = NULL) const;
33 : : // will be used by edge meshers to decide are we or not variables
34 : : // use a different edge mesh strategy then (different enum)
35 : 44 : virtual bool variable() {return true;}
36 : :
37 : : private:
38 : : double a, b, c, d;
39 : : double fixed[3];
40 : :
41 : : };
42 : :
43 : : }
44 : :
45 : : #endif /* SIZINGFUNCTIONVAR_HPP_ */
|