Hermes2D
3.0
|
Public Member Functions | |
ConstantSolution (MeshSharedPtr mesh, Scalar constant) | |
virtual Scalar | value (double x, double y) const |
Function returning the value. | |
virtual void | derivatives (double x, double y, Scalar &dx, Scalar &dy) const |
Function returning the derivatives. | |
virtual Ord | ord (double x, double y) const |
virtual MeshFunction< Scalar > * | clone () const |
void | save (const char *filename) const |
Saves the exact solution to an XML file. | |
template<> | |
void | save (const char *filename) const |
Saves the exact solution to an XML file. | |
template<> | |
void | save (const char *filename) const |
Saves the exact solution to an XML file. | |
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) | |
std::string | getClassName () const |
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) |
RefMap * | get_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... | |
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 | push_transform (int son) |
virtual void | pop_transform () |
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 |
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 | |
Scalar | constant |
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. | |
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. | |
Protected Attributes inherited from Hermes::Hermes2D::Mixins::XMLParsing | |
bool | validate |
Internal. | |
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 |
Trf * | get_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 |
Definition at line 144 of file exact_solution.h.
|
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 295 of file exact_solution.cpp.
|
virtual |
Function returning the integration order that should be used when integrating the function.
Implements Hermes::Hermes2D::ExactSolution< Scalar >.
Definition at line 309 of file exact_solution.cpp.