|
Hermes2D
2.0
|
#include <filter.h>
Inheritance diagram for Hermes::Hermes2D::SimpleFilter< Scalar >:Public Member Functions | |
| SimpleFilter (const Hermes::vector< MeshFunction< Scalar > * > &solutions, const Hermes::vector< int > &items=Hermes::vector< int >()) | |
| SimpleFilter (const Hermes::vector< Solution< Scalar > * > &solutions, const Hermes::vector< int > &items=Hermes::vector< int >()) | |
| virtual Func< Scalar > * | get_pt_value (double x, double y) |
| Returns the value at the coordinates x,y. | |
Public Member Functions inherited from Hermes::Hermes2D::Filter< Scalar > | |
| Filter (const Hermes::vector< MeshFunction< Scalar > * > &solutions) | |
| Filter (MeshFunction< Scalar > **solutions, int num) | |
| Filter (const Hermes::vector< Solution< Scalar > * > &solutions) | |
| virtual void | reinit () |
| std::string | getClassName () const |
| State querying helpers. | |
Public Member Functions inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
| MeshFunction (const Mesh *mesh) | |
| virtual bool | isOkay () const |
| State querying helpers. | |
| std::string | getClassName () const |
| Get class name, for the purpose of messaging. | |
| const Mesh * | get_mesh () const |
| RefMap * | get_refmap (bool update=true) |
| void | set_refmap (RefMap *refmap_to_set) |
| virtual int | get_edge_fn_order (int edge) |
| virtual void | handle_overflow_idx () |
| virtual MeshFunction< Scalar > * | clone () const |
Public Member Functions inherited from Hermes::Hermes2D::Function< Scalar > | |
| Function () | |
| Default constructor. | |
| virtual | ~Function () |
| int | get_num_components () const |
| Returns the number of components of the function being represented by the class. | |
| Scalar * | get_fn_values (int component=0) |
| Returns function values. More... | |
| Scalar * | get_dx_values (int component=0) |
| Returns the x partial derivative. More... | |
| Scalar * | get_dy_values (int component=0) |
| Returns the y partial derivative. More... | |
| void | get_dx_dy_values (Scalar *&dx, Scalar *&dy, int component=0) |
| Returns both x and y partial derivatives. This function provides the both often-used dx and dy values in one call. More... | |
| Scalar * | get_dxx_values (int component=0) |
| Returns the second x partial derivative. More... | |
| Scalar * | get_dyy_values (int component=0) |
| Returns the second y partial derivative. More... | |
| Scalar * | get_dxy_values (int component=0) |
| Returns the second mixed derivative. More... | |
| Quad2D * | get_quad_2d () const |
| Returns the current quadrature points. | |
| void | set_quad_order (unsigned int order, int mask=H2D_FN_DEFAULT) |
| Scalar * | get_values (int a, int b) |
| int | get_fn_order () const |
| Returns the polynomial degree of the function being represented by the class. | |
Public Member Functions inherited from Hermes::Hermes2D::Transformable | |
| Element * | get_active_element () const |
| void | set_transform (uint64_t idx) |
| uint64_t | get_transform () const |
Public Member Functions inherited from Hermes::Hermes2D::Mixins::StateQueryable | |
| void | check () const |
| Method to handle the state. | |
Protected Member Functions | |
| virtual void | filter_fn (int n, Hermes::vector< Scalar * > values, Scalar *result)=0 |
| void | init_components () |
| virtual void | precalculate (int order, int mask) |
| precalculates the current function at the current integration points. | |
Protected Member Functions inherited from Hermes::Hermes2D::Filter< Scalar > | |
| void | init (const Hermes::vector< MeshFunction< Scalar > * > &solutions) |
| virtual void | set_quad_2d (Quad2D *quad_2d) |
| Selects the quadrature points in which the function will be evaluated. More... | |
| virtual void | set_active_element (Element *e) |
| virtual void | free () |
| Frees all precalculated tables. | |
| virtual void | push_transform (int son) |
| See Transformable::push_transform. | |
| virtual void | pop_transform () |
| virtual void | init () |
| void | copy_base (Filter *flt) |
| virtual void | setDeleteSolutions () |
Protected Member Functions inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
| void | force_transform (MeshFunction< Scalar > *mf) |
| void | update_refmap () |
| void | force_transform (uint64_t sub_idx, Trf *ctm) |
Protected Member Functions inherited from Hermes::Hermes2D::Function< Scalar > | |
| virtual int | get_edge_fn_order (int edge) const |
| Returns the polynomial degree of the function at given edge. To be overridden in derived classes. More... | |
| void | update_nodes_ptr () |
| void | force_transform (uint64_t sub_idx, Trf *ctm) |
| For internal use only. | |
| Node * | new_node (int mask, int num_points) |
| allocates a new Node structure | |
| void | replace_cur_node (Node *node) |
Protected Member Functions inherited from Hermes::Hermes2D::Transformable | |
| void | reset_transform () |
| Empties the stack, loads identity transform. | |
| double | get_transform_jacobian () const |
| Trf * | get_ctm () const |
| unsigned int | get_depth () const |
Protected Attributes | |
| int | item [H2D_MAX_COMPONENTS] |
Protected Attributes inherited from Hermes::Hermes2D::Filter< Scalar > | |
| int | num |
| MeshFunction< Scalar > * | sln [H2D_MAX_COMPONENTS] |
| uint64_t | sln_sub [H2D_MAX_COMPONENTS] |
| std::map< uint64_t, LightArray < struct Filter< Scalar > ::Node * > * > | tables [H2D_MAX_QUADRATURES] |
| bool | unimesh |
| UniData ** | unidata |
| bool | deleteSolutions |
Protected Attributes inherited from Hermes::Hermes2D::MeshFunction< Scalar > | |
| ElementMode2D | mode |
| const Mesh * | mesh |
| RefMap * | refmap |
Protected Attributes inherited from Hermes::Hermes2D::Function< Scalar > | |
| int | order |
| current function polynomial order | |
| int | num_components |
| number of vector components | |
|
std::map< uint64_t, LightArray < Node * > * > * | sub_tables |
| Table of Node tables, for each possible transformation there can be a different Node table. | |
| LightArray< Node * > * | nodes |
| Table of nodes. | |
| Node * | cur_node |
| Current Node. | |
| LightArray< Node * > * | overflow_nodes |
| Nodes for the overflow sub-element transformation. | |
| Quad2D * | quads [8] |
| list of available quadratures | |
| int | cur_quad |
| active quadrature (index into 'quads') | |
| int | total_mem |
| total memory in bytes used by the tables | |
| int | max_mem |
| peak memory usage | |
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. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from Hermes::Hermes2D::Function< Scalar > | |
| static void | check_params (int component, Node *cur_node, int num_components) |
| static void | check_table (int component, Node *cur_node, int n, const char *msg) |
Static Protected Attributes inherited from Hermes::Hermes2D::Function< Scalar > | |
| static int | idx2mask [6][2] |
| index to mask table More... | |
SimpleFilter is a base class for predefined simple filters (MagFilter, DiffFilter...). The 'simplicity' lies in the fact that only one value per input function can be combined (e.g., not a value and a derivative). If this is not sufficient, a full-fledged filter must be derived from the Filter class (see VonMisesFilter). SimpleFilter is also intended for the user to be able to easily create custom filters only by supplying the combining function.
The user specifies the combining function, the arguments ('sln1', 'sln2', 'sln3'), and optionally the 'item' for each argument, which can be any of H2D_FN_VAL_0, H2D_FN_DX_0, H2D_FN_DY_0 etc.
SimpleFilter is vector-valued, if at least one input function is vector-valued and both components are specified in 'item', e.g., item1 = H2D_FN_DX (which is H2D_FN_DX_0 | H2D_FN_DX_1). Otherwise it is Scalar-valued.