#include <MovingLS.h>
Inheritance diagram for MovingLS::

Public Methods | |
| MovingLS () | |
| ~MovingLS () | |
| void | setBasisType (const String &basis_tp) |
| void | setPrmInWeight (real c_) |
| void | value (NUMT &field_value, Ptv(NUMT) &field_gradient, const FieldsFEatItgPt &field, int field_no, int node) |
| void | smoothFields (FieldsFE &smooth_field, const FieldsFEatItgPt &field, const VecSimple(int) *components_to_be_smoothed=NULL) |
| void | value (NUMT &field_value, Ptv(NUMT) &field_gradient, const Vec(NUMT) &values, const Mat(real) &coords, const Ptv(real) &x_G) |
| void | initSupport (GridFE &grid, const FieldsFEatItgPt &field) |
NAME: MovingLS - smooth derivatives of finite element fields by moving least squares
DESCRIPTION:
The class implements the moving least square interpolant algorithm, by Tabbara, Blacker and Belytschko, for computing smooth and accurate derivatives at fields defined at scattered points only.
Reference: M. Tabbara, T. Blacker and T. Belytschko. Finite element derivative recovery by moving least square interpolants. Comput. Methods Appl. Mech. Engrg., vol 117 (1994), 211-223. The implementation follows the notation in the paper.
EXAMPLE:
Here is an example of how to use class for interpolating a value in a cloud of n point values.
MovingLS m;
m.setBasisType("QuadPolyn"); // interpolate using quadratic polynomials
const int n = 6; // no of points with known function values const int nsd = 2; // no of space dimensions
// fill coords and values
Ptv(real) x_G(nsd); // point where we want to interpolate a value
real f; // interpolated function value at x_G Ptv(real) grad_f; // interpolated gradient of function at x_G
m.value(f, grad_f, values, coords, x_G);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|