Hermes2D  2.0
Hermes::Hermes2D::DiscontinuousFunc< T > Class Template Reference

This class represents a function with jump discontinuity on an interface of two elements. More...

#include "src/form/forms.h"

+ Inheritance diagram for Hermes::Hermes2D::DiscontinuousFunc< T >:

Public Member Functions

virtual T & get_val_central (int k) const
 Get values on the central element.
 
virtual T & get_val_neighbor (int k) const
 Get values on the neighboring element.
 
virtual T & get_dx_central (int k) const
 Get derivatives wrt. x on the central element.
 
virtual T & get_dx_neighbor (int k) const
 Get derivatives wrt. x on the neighboring element.
 
virtual T & get_dy_central (int k) const
 Get derivatives wrt. y on the central element.
 
virtual T & get_dy_neighbor (int k) const
 Get derivatives wrt. y on the neighboring element.
 
virtual T & get_laplace_central (int k)
 Get second derivatives (laplacian) on the central element.
 
virtual T & get_laplace_neighbor (int k)
 Get second derivatives (laplacian) on the neighboring element.
 
 DiscontinuousFunc (Func< T > *fn, bool support_on_neighbor=false, bool reverse=false)
 
 DiscontinuousFunc (Func< T > *fn_c, Func< T > *fn_n, bool reverse=false)
 
- Public Member Functions inherited from Hermes::Hermes2D::Func< T >
 Func (int num_gip, int num_comps)
 Constructor. More...
 
virtual ~Func ()
 
void subtract (Func< T > *func)
 
void add (T *attribute, T *other_attribute)
 
int get_num_gip () const
 

Public Attributes

Func< T > * fn_central
 Central element's component.
 
Func< T > * fn_neighbor
 Neighbor element's component.
 
- Public Attributes inherited from Hermes::Hermes2D::Func< T >
T * val
 Function values. If T == Hermes::Ord and orders vary with direction, this returns max(h_order, v_order).
 
T * dx
 
T * dy
 First-order partial derivatives.
 
T * laplace
 Sum of second-order partial derivatives. Enabled by defining H2D_USE_SECOND_DERIVATIVES in h2d_common.h.
 
T * val0
 
T * val1
 Components of a vector field.
 
T * dx0
 
T * dx1
 Components of the gradient of a vector field.
 
T * dy0
 
T * dy1
 Components of the gradient of a vector field.
 
T * curl
 Components of the curl of a vector field.
 
T * div
 Components of the div of a vector field.
 

Friends

template<typename Scalar >
class DiscreteProblem
 
template<typename Scalar >
class DiscreteProblemLinear
 
template<typename Scalar >
class KellyTypeAdapt
 
template<typename Scalar >
class Adapt
 
template<typename Scalar >
class NeighborSearch
 

Additional Inherited Members

- Protected Member Functions inherited from Hermes::Hermes2D::Func< T >
void subtract (T *attribute, T *other_attribute)
 Calculate this -= func for each function expations and each integration point. More...
 
void add (Func< T > *func)
 Calculate this += func for each function expations and each integration point. More...
 
- Protected Attributes inherited from Hermes::Hermes2D::Func< T >
const int num_gip
 Number of integration points used by this intance.
 
const int nc
 Number of components. Currently accepted values are 1 (H1, L2 space) and 2 (Hcurl, Hdiv space).
 

Detailed Description

template<typename T>
class Hermes::Hermes2D::DiscontinuousFunc< T >

This class represents a function with jump discontinuity on an interface of two elements.

We will refer to one of the elements sharing the interface of discontinuity as to the central element, while to the other one as to the neighbor element.

Instance of the class may be constructed either with two Func objects, which represent the continuous components on the central and the neighbor element, respectively, or with only one Func object and information about its support (where it attains non-zero value). The discontinuous function is in the latter case constructed by extending the supplied function by zero to the other element. Values and derivatives from both elements may then be obtained by querying the corresponding Func object, using methods get_val_central, get_val_neighbor, etc.

Definition at line 136 of file forms.h.

Constructor & Destructor Documentation

template<typename T >
Hermes::Hermes2D::DiscontinuousFunc< T >::DiscontinuousFunc ( Func< T > *  fn,
bool  support_on_neighbor = false,
bool  reverse = false 
)

One-component constructor.

Parameters
[in]fnFunction defined either on the central or the neighbor element.
[in]support_on_neighborTrue if fn is defined on the neighbor element, false if on the central element.
[in]reverseSame meaning as reverse_neighbor_side.

Definition at line 174 of file forms.cpp.

template<typename T >
Hermes::Hermes2D::DiscontinuousFunc< T >::DiscontinuousFunc ( Func< T > *  fn_c,
Func< T > *  fn_n,
bool  reverse = false 
)

Two-component constructor.

Parameters
[in]fn_cFunction defined on the central element.
[in]fn_nFunction defined on the neighbor element.
[in]reverseSame meaning as reverse_neighbor_side.

Definition at line 189 of file forms.cpp.


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