Hermes2D
3.0
|
#include <filter.h>
Public Member Functions | |
DXDYFilter (std::vector< MeshFunctionSharedPtr< Scalar > > solutions) | |
Public Member Functions inherited from Hermes::Hermes2D::Filter< Scalar > | |
Filter (std::vector< MeshFunctionSharedPtr< Scalar > > solutions) | |
virtual void | reinit () |
Internal. | |
SpaceType | get_space_type () const |
std::string | getClassName () const |
State querying helpers. | |
Public Member Functions inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
MeshFunction () | |
Empty constructor. | |
MeshFunction (MeshSharedPtr mesh) | |
Constructor. | |
virtual | ~MeshFunction () |
Destructor. | |
MeshSharedPtr | get_mesh () const |
Return the mesh. | |
virtual void | copy (const MeshFunction< Scalar > *sln) |
Copy from sln to this instance. | |
virtual void | copy (MeshFunctionSharedPtr< Scalar > sln) |
RefMap * | get_refmap (bool update=true) |
Return the reference mapping. | |
virtual MeshFunction< Scalar > * | clone () const =0 |
virtual void | multiply (Scalar coef) |
Multiplies the function represented by this class by the given coefficient. | |
virtual void | add (MeshFunctionSharedPtr< Scalar > &other_mesh_function, SpaceSharedPtr< Scalar > target_space) |
virtual Scalar | get_approx_max_value (int item=H2D_FN_VAL_0) |
Return the approximate maximum value of this instance. | |
virtual Scalar | get_approx_min_value (int item=H2D_FN_VAL_0) |
Return the approximate minimum value of this instance. | |
virtual bool | isOkay () const |
State querying helpers. | |
std::string | getClassName () const |
Internal. | |
virtual int | get_edge_fn_order (int edge) |
Returns the order of the edge number edge of the current active element. | |
template<> | |
double | get_approx_max_value (int item_) |
template<> | |
std::complex< double > | get_approx_max_value (int item_) |
template<> | |
double | get_approx_min_value (int item_) |
template<> | |
std::complex< double > | get_approx_min_value (int item_) |
Public Member Functions inherited from Hermes::Hermes2D::Function< Scalar > | |
Function () | |
Default constructor. | |
virtual | ~Function () |
unsigned char | get_num_components () const |
Returns the number of components of the function being represented by the class. | |
virtual const Scalar * | get_fn_values (int component=0) const |
Returns function values. More... | |
virtual const Scalar * | get_dx_values (int component=0) const |
Returns the x partial derivative. More... | |
virtual const Scalar * | get_dy_values (int component=0) const |
Returns the y partial derivative. More... | |
Scalar * | deep_copy_array (int component=0, int item=0) const |
Returns function values. More... | |
Quad2D * | get_quad_2d () const |
Returns the current quadrature points. | |
void | set_quad_order (unsigned short order, unsigned short mask=H2D_FN_DEFAULT) |
virtual const Scalar * | get_values (int component, int item) const |
virtual int | get_fn_order () const |
Returns the polynomial degree of the function being represented by the class. | |
virtual void | set_transform (uint64_t idx) |
Public Member Functions inherited from Hermes::Hermes2D::Transformable | |
Element * | get_active_element () const |
uint64_t | get_transform () const |
Protected Member Functions | |
void | init (std::vector< MeshFunctionSharedPtr< Scalar > > solutions) |
virtual Func< Scalar > * | get_pt_value (double x, double y, bool use_MeshHashGrid=false, Element *e=nullptr) |
Return the value at the coordinates x,y. | |
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 |
void | init_components () |
virtual void | precalculate (unsigned short order, unsigned short mask) |
precalculates the current function at the current integration points. | |
Protected Member Functions inherited from Hermes::Hermes2D::Filter< Scalar > | |
virtual void | set_quad_2d (Quad2D *quad_2d) |
virtual void | set_active_element (Element *e) |
virtual void | free () |
Frees all precalculated tables. | |
virtual void | push_transform (int son) |
virtual void | pop_transform () |
virtual void | init () |
Internal. | |
void | copy_base (Filter *flt) |
Protected Member Functions inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
void | update_refmap () |
Protected Member Functions inherited from Hermes::Hermes2D::Function< Scalar > | |
virtual void | reset_transform () |
Empties the stack, loads identity transform. | |
virtual void | force_transform (uint64_t sub_idx, Trf *ctm) |
For internal use only. | |
virtual int | get_edge_fn_order (unsigned char edge) const |
Returns the polynomial degree of the function at given edge. To be overridden in derived classes. More... | |
void | invalidate_values () |
Protected Member Functions inherited from Hermes::Hermes2D::Transformable | |
double | get_transform_jacobian () const |
Trf * | get_ctm () const |
unsigned int | get_depth () const |
Additional Inherited Members | |
Static Public Attributes inherited from Hermes::Hermes2D::Transformable | |
static const unsigned int | H2D_MAX_TRN_LEVEL = 15 |
If this changes, NeighborSearch::H2D_MAX_NEIGHBORS must change too. | |
Static Protected Member Functions inherited from Hermes::Hermes2D::Transformable | |
static void | push_transforms (std::set< Transformable * > &transformables, int son) |
static void | pop_transforms (std::set< Transformable * > &transformables) |
Protected Attributes inherited from Hermes::Hermes2D::Filter< Scalar > | |
std::vector < MeshFunctionSharedPtr < Scalar > > | solutions |
std::vector< uint64_t > | solutions_sub_idx |
bool | unimesh |
SpaceType | space_type |
UniData ** | unidata |
Protected Attributes inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
ElementMode2D | mode |
MeshSharedPtr | mesh |
RefMap | refmap |
Protected Attributes inherited from Hermes::Hermes2D::Function< Scalar > | |
Scalar | values [H2D_MAX_SOLUTION_COMPONENTS][H2D_NUM_FUNCTION_VALUES][H2D_MAX_INTEGRATION_POINTS_COUNT] |
The data. | |
bool | values_valid |
Flag that the data are not 'dirty'. | |
int | order |
Current function polynomial order. | |
unsigned char | num_components |
Number of vector components. | |
Quad2D * | quads [H2D_MAX_QUADRATURES] |
List of available quadratures. | |
int | cur_quad |
Active quadrature (index into 'quads') | |
Protected Attributes inherited from Hermes::Hermes2D::Transformable | |
Element * | element |
The active element. | |
Trf * | ctm |
Current sub-element transformation matrix. | |
uint64_t | sub_idx |
Sub-element transformation index. | |
Trf | stack [21] |
Transformation matrix stack. | |
unsigned int | top |
Stack top. | |
Static Protected Attributes inherited from Hermes::Hermes2D::Function< Scalar > | |
static int | idx2mask [H2D_NUM_FUNCTION_VALUES][2] |
Index to mask table. More... | |
Static Protected Attributes inherited from Hermes::Hermes2D::Transformable | |
static const uint64_t | H2D_MAX_IDX = (1ULL << 3 * H2D_MAX_TRN_LEVEL) - 1 |
DXDYFilter is a more advanced version of SimpleFilter. It allows combining derivatives of the inputs and also, unlike SimpleFilter, it defines derivatives of the filtered result. The user-supplied combining function has a different format: it takes and must return also the DX and DY values.