Hermes2D  3.0
Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType > Class Template Reference

#include <exact_solution.h>

+ Inheritance diagram for Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType >:

Public Member Functions

 ExactSolutionConstantArray (MeshSharedPtr mesh, ValueType *valueArray, bool deleteArray=false)
 
virtual MeshFunction< Scalar > * clone () const
 
virtual Scalar value (double x, double y) const
 Function returning the value.
 
virtual Ord ord (double x, double y) const
 
virtual void derivatives (double x, double y, Scalar &dx, Scalar &dy) const
 Function returning the derivatives.
 
std::string getClassName () const
 
void setArray (ValueType *valueArray)
 
- Public Member Functions inherited from Hermes::Hermes2D::ExactSolutionScalar< Scalar >
 ExactSolutionScalar (MeshSharedPtr mesh)
 
virtual unsigned int get_dimension () const
 For Scalar-valued solutions this returns 1.
 
Scalar exact_function (double x, double y, Scalar &dx, Scalar &dy) const
 Function returning the value and derivatives.
 
- Public Member Functions inherited from Hermes::Hermes2D::ExactSolution< Scalar >
 ExactSolution (MeshSharedPtr mesh)
 
virtual void save (const char *filename) const
 Saves the exact solution to an XML file.
 
- Public Member Functions inherited from Hermes::Hermes2D::Solution< Scalar >
 Solution (MeshSharedPtr mesh)
 
 Solution (SpaceSharedPtr< Scalar > s, Vector< Scalar > *coeff_vec)
 
 Solution (SpaceSharedPtr< Scalar > s, Scalar *coeff_vec)
 
virtual bool isOkay () const
 State querying helpers.
 
virtual void copy (const MeshFunction< Scalar > *sln)
 Copy from sln to this instance.
 
void set_dirichlet_lift (SpaceSharedPtr< Scalar > space)
 Sets solution equal to Dirichlet lift only, solution vector = 0.
 
void load (const char *filename, SpaceSharedPtr< Scalar > space)
 
Scalar get_ref_value (Element *e, double xi1, double xi2, int component=0, int item=0)
 
Scalar get_ref_value_transformed (Element *e, double xi1, double xi2, int a, int b)
 
Scalar ** get_ref_values_transformed (Element *e, double x, double y)
 
virtual Func< Scalar > * get_pt_value (double x, double y, bool use_MeshHashGrid=false, Element *e=nullptr)
 
virtual void add (MeshFunctionSharedPtr< Scalar > &other_mesh_function, SpaceSharedPtr< Scalar > target_space)
 
virtual void multiply (Scalar coef)
 Multiplies the function represented by this class by the given coefficient.
 
SolutionType get_type () const
 Returns solution type.
 
SpaceType get_space_type () const
 
virtual void set_active_element (Element *e)
 Internal.
 
void set_type (SolutionType type)
 
virtual void free ()
 Frees all precalculated tables.
 
template<>
 Solution (MeshSharedPtr mesh)
 
template<>
 Solution (MeshSharedPtr mesh)
 
template<>
 Solution (SpaceSharedPtr< double > s, Vector< double > *coeff_vec)
 
template<>
 Solution (SpaceSharedPtr< std::complex< double > > s, Vector< std::complex< double > > *coeff_vec)
 
template<>
 Solution (SpaceSharedPtr< double > s, double *coeff_vec)
 
template<>
 Solution (SpaceSharedPtr< std::complex< double > > s, std::complex< double > *coeff_vec)
 
template<>
void save (const char *filename) const
 
template<>
void save (const char *filename) const
 
template<>
void load (const char *filename, SpaceSharedPtr< double > space)
 
template<>
void load (const char *filename, SpaceSharedPtr< std::complex< double > > space)
 
- 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 (MeshFunctionSharedPtr< Scalar > sln)
 
RefMapget_refmap (bool update=true)
 Return the reference mapping.
 
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.
 
std::string getClassName () const
 Internal.
 
virtual void reinit ()
 Internal.
 
virtual void set_quad_2d (Quad2D *quad_2d)
 
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...
 
Quad2Dget_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 push_transform (int son)
 
virtual void pop_transform ()
 
virtual void set_transform (uint64_t idx)
 
- Public Member Functions inherited from Hermes::Hermes2D::Transformable
Elementget_active_element () const
 
uint64_t get_transform () const
 
- Public Member Functions inherited from Hermes::Hermes2D::Mixins::XMLParsing
 XMLParsing ()
 Constructor.
 
void set_validation (bool to_set)
 Set to validate / not to validate.
 

Protected Attributes

ValueType * valueArray
 Array of the values.
 
bool deleteArray
 Delete the array.
 
- Protected Attributes inherited from Hermes::Hermes2D::ExactSolution< Scalar >
Scalar exact_multiplicator
 For scaling of the solution.
 
- Protected Attributes inherited from Hermes::Hermes2D::Solution< Scalar >
SolutionType sln_type
 
SpaceType space_type
 
bool transform
 
int * elem_coeffs [H2D_MAX_SOLUTION_COMPONENTS]
 array of pointers into mono_coeffs
 
int num_coeffs
 
int num_elems
 
int num_dofs
 
Scalar * dxdy_coeffs [H2D_MAX_SOLUTION_COMPONENTS][H2D_NUM_FUNCTION_VALUES]
 
Scalar * dxdy_buffer
 
Scalar x [H2D_MAX_INTEGRATION_POINTS_COUNT]
 Utility.
 
Scalar y [H2D_MAX_INTEGRATION_POINTS_COUNT]
 
Scalar tx [H2D_MAX_INTEGRATION_POINTS_COUNT]
 
- 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.
 
Quad2Dquads [H2D_MAX_QUADRATURES]
 List of available quadratures.
 
int cur_quad
 Active quadrature (index into 'quads')
 
- Protected Attributes inherited from Hermes::Hermes2D::Transformable
Elementelement
 The active element.
 
Trfctm
 Current sub-element transformation matrix.
 
uint64_t sub_idx
 Sub-element transformation index.
 
Trf stack [21]
 Transformation matrix stack.
 
unsigned int top
 Stack top.
 
- Protected Attributes inherited from Hermes::Hermes2D::Mixins::XMLParsing
bool validate
 Internal.
 

Friends

template<typename T >
class Solution
 

Additional Inherited Members

- Static Public Member Functions inherited from Hermes::Hermes2D::Solution< Scalar >
static void make_dx_coeffs (int mode, int o, Scalar *mono, Scalar *result)
 
static void make_dy_coeffs (int mode, int o, Scalar *mono, Scalar *result)
 
static void set_static_verbose_output (bool verbose)
 
static void vector_to_solutions (const Scalar *solution_vector, std::vector< SpaceSharedPtr< Scalar > > spaces, std::vector< MeshFunctionSharedPtr< Scalar > > solutions, std::vector< bool > add_dir_lift=std::vector< bool >(), std::vector< int > start_indices=std::vector< int >())
 Passes solution components calculated from solution vector as Solutions.
 
static void vector_to_solution (const Scalar *solution_vector, SpaceSharedPtr< Scalar > space, MeshFunctionSharedPtr< Scalar > solution, bool add_dir_lift=true, int start_index=0)
 
static void vector_to_solution (const Scalar *solution_vector, SpaceSharedPtr< Scalar > space, Solution< Scalar > *solution, bool add_dir_lift=true, int start_index=0)
 
static void vector_to_solutions (const Vector< Scalar > *vec, std::vector< SpaceSharedPtr< Scalar > > spaces, std::vector< MeshFunctionSharedPtr< Scalar > > solutions, std::vector< bool > add_dir_lift=std::vector< bool >(), std::vector< int > start_indices=std::vector< int >())
 
static void vector_to_solutions_common_dir_lift (const Vector< Scalar > *vec, std::vector< SpaceSharedPtr< Scalar > > spaces, std::vector< MeshFunctionSharedPtr< Scalar > > solutions, bool add_dir_lift=false)
 
static void vector_to_solutions_common_dir_lift (const Scalar *solution_vector, std::vector< SpaceSharedPtr< Scalar > > spaces, std::vector< MeshFunctionSharedPtr< Scalar > > solutions, bool add_dir_lift=false)
 
static void vector_to_solution (const Vector< Scalar > *vec, SpaceSharedPtr< Scalar > space, MeshFunctionSharedPtr< Scalar > solution, bool add_dir_lift=true, int start_index=0)
 
- Public Attributes inherited from Hermes::Hermes2D::Solution< Scalar >
Scalar * mono_coeffs
 Monomial coefficient array.
 
int * elem_orders
 
- Static Public Attributes inherited from Hermes::Hermes2D::Solution< Scalar >
static bool static_verbose_output = false
 
- 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.
 
- Protected Member Functions inherited from Hermes::Hermes2D::Solution< Scalar >
void enable_transform (bool enable=true)
 
virtual void init ()
 Internal.
 
virtual void set_coeff_vector (SpaceSharedPtr< Scalar > space, const Vector< Scalar > *vec, bool add_dir_lift, int start_index)
 Converts a coefficient vector into a Solution.
 
virtual void set_coeff_vector (SpaceSharedPtr< Scalar > space, const Scalar *coeffs, bool add_dir_lift, int start_index)
 
void transform_values (int order, int mask, int np)
 
virtual void precalculate (unsigned short order, unsigned short mask)
 precalculates the current function at the current integration points.
 
double ** calc_mono_matrix (int mode, unsigned char o)
 
void init_dxdy_buffer ()
 
void check_space_type_compliance (const char *space_type_to_check) const
 Internal, checks the compliance of the passed space type and owned space type.
 
void load_exact_solution (int number_of_components, SpaceSharedPtr< Scalar > space, bool complexness, double x_real, double y_real, double x_complex, double y_complex)
 Special internal method for loading exact solutions.
 
template<>
void load_exact_solution (int number_of_components, SpaceSharedPtr< double > space, bool complexness, double x_real, double y_real, double x_complex, double y_complex)
 
template<>
void load_exact_solution (int number_of_components, SpaceSharedPtr< std::complex< double > > space, bool complexness, double x_real, double y_real, double x_complex, double y_complex)
 
- 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
 
Trfget_ctm () const
 
unsigned int get_depth () const
 
- 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)
 
- 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
 

Detailed Description

template<typename Scalar, typename ValueType>
class Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType >

Serves for postprocessing of element-wise constant values (such as the error in adaptivity). The second template parameter ValueType must be a type castable to Scalar.

Definition at line 89 of file exact_solution.h.

Constructor & Destructor Documentation

template<typename Scalar , typename ValueType >
Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType >::ExactSolutionConstantArray ( MeshSharedPtr  mesh,
ValueType *  valueArray,
bool  deleteArray = false 
)

Constructor.

Parameters
[in]valueArrayArray of element-wise values, sorted according to the elements' ids.

Definition at line 91 of file exact_solution.cpp.

Member Function Documentation

template<typename Scalar , typename ValueType >
MeshFunction< Scalar > * Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType >::clone ( ) const
virtual

Cloning function - for parallel OpenMP blocks. Designed to return an identical clone of this instance.

Reimplemented from Hermes::Hermes2D::ExactSolution< Scalar >.

Definition at line 103 of file exact_solution.cpp.

template<typename Scalar , typename ValueType >
Ord Hermes::Hermes2D::ExactSolutionConstantArray< Scalar, ValueType >::ord ( double  x,
double  y 
) const
virtual

Function returning the integration order that should be used when integrating the function.

Implements Hermes::Hermes2D::ExactSolution< Scalar >.

Definition at line 115 of file exact_solution.cpp.


The documentation for this class was generated from the following files: