16 #ifndef __H2D_FILTER_H
17 #define __H2D_FILTER_H
34 template<
typename Scalar>
43 virtual void reinit();
45 inline SpaceType get_space_type()
const {
return space_type; };
51 virtual void set_quad_2d(
Quad2D* quad_2d);
53 virtual void set_active_element(
Element* e);
57 virtual void push_transform(
int son);
59 virtual void pop_transform();
63 std::vector<MeshFunctionSharedPtr<Scalar> > solutions;
65 std::vector<uint64_t> solutions_sub_idx;
73 void copy_base(
Filter* flt);
91 template<
typename Scalar>
100 virtual Func<Scalar>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
103 std::vector<int> items;
105 virtual void filter_fn(
int n,
const std::vector<const Scalar*>& values, Scalar* result) = 0;
107 void init_components();
108 virtual void precalculate(
unsigned short order,
unsigned short mask);
121 virtual Func<double>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
123 virtual void set_quad_2d(
Quad2D* quad_2d);
125 virtual void set_active_element(
Element* e);
127 virtual void push_transform(
int son);
129 virtual void pop_transform();
137 virtual void filter_fn(
int n,
const std::complex<double>* values,
double* result) = 0;
139 virtual void precalculate(
unsigned short order,
unsigned short mask);
147 template<
typename Scalar>
160 virtual Func<Scalar>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
162 virtual void filter_fn(
int n,
double* x,
double* y,
const std::vector<const Scalar *>& values,
const std::vector<const Scalar *>& dx,
const std::vector<const Scalar *>& dy, Scalar* rslt, Scalar* rslt_dx, Scalar* rslt_dy) = 0;
164 void init_components();
166 virtual void precalculate(
unsigned short order,
unsigned short mask);
172 template<
typename Scalar>
184 virtual void filter_fn(
int n,
const std::vector<const Scalar*>& values, Scalar* result);
199 virtual void filter_fn(
int n,
const std::vector<const double*>& values,
double* result);
200 std::vector<double> limits;
215 virtual void filter_fn(
int n,
const std::vector<const double*>& values,
double* result);
216 std::vector<double> limits;
231 virtual void filter_fn(
int n,
const std::vector<const double*>& values,
double* result);
232 std::vector<double> low_limits;
233 std::vector<double> high_limits;
237 template<
typename Scalar>
246 virtual void filter_fn(
int n,
const std::vector<const Scalar*>& values, Scalar* result);
250 template<
typename Scalar>
259 virtual void filter_fn(
int n,
const std::vector<const Scalar*>& values, Scalar* result);
263 template<
typename Scalar>
272 virtual void filter_fn(
int n,
const std::vector<const Scalar*>& values, Scalar* result);
285 virtual void filter_fn(
int n,
const std::vector<const double*>& values,
double* result);
299 virtual void filter_fn(
int n,
const std::complex<double>* values,
double* result);
312 virtual void filter_fn(
int n,
const std::complex<double>* values,
double* result);
325 virtual void filter_fn(
int n,
const std::complex<double>* values,
double* result);
336 virtual void filter_fn(
int n,
const std::vector<
const std::complex<double>*>& values,
double* result);
350 virtual Func<double>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
358 int cyl, item1, item2;
360 virtual void precalculate(
unsigned short order,
unsigned short mask);
366 template<
typename Scalar>
374 virtual Func<Scalar>* get_pt_value(
double x,
double y,
bool use_MeshHashGrid =
false,
Element* e =
nullptr);
381 virtual void precalculate(
unsigned short order,
unsigned short mask);
383 void init_components();
385 virtual void set_active_element(
Element* e);
Calculates the Von Mises stress.
Stores one element of a mesh.
TopValFilter takes functions and puts a threshold on their highest values.
Represents a function defined on a mesh.
std::string getClassName() const
State querying helpers.
BottomValFilter takes functions and puts a threshold on their lowest values.
Calculates the magnitude of a vector function.
Calculates absolute value of a real solution.
ValFilter takes functions and puts a threshold on their lowest AND highest values.
Calculates the square of a function.
Calculates the difference of two functions.
Computes the absolute value of a complex solution.
Calculates the sum of two functions.
Computes the angle of a complex solution.
Calculated function values (from the class Function) on an element for assembling.
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
const int H2D_FN_VAL
Both components are usually requested together...
Removes the imaginary part from a function.