Solution Class Reference
[Solutions]

Represents the solution of a PDE. More...

#include <solution.h>

Inherits MeshFunction.

Inherited by ExactSolution.

List of all members.

Public Member Functions

 Solution (Mesh *mesh)
virtual ~Solution ()
virtual void free ()
 Frees all precalculated tables.
void assign (Solution *sln)
Solutionoperator= (Solution &sln)
void copy (const Solution *sln)
void set_exact (exact_fn_t exactfn)
void set_exact (exact_vec_fn_t exactfn)
void set_const (scalar c)
void set_const (scalar c0, scalar c1, scalar c2)
void set_zero ()
void set_zero_3 ()
virtual void set_fe_solution (Space *space, scalar *vec, double dir=1.0)
virtual void set_active_element (Element *e)
 Called by the assembling procedure and by other functions. In PrecalcShapeset it sets an internal variable that can be later retrieved by get_active_element(). In Solution it selects the element to retrieve solution values for, etc.
void enable_transform (bool enable)
 Enables or disables transformation of the solution derivatives (H1 case) or values (vector (Hcurl) case). This means FN_DX_0 and FN_DY_0 or FN_VAL_0 and FN_VAL_1 will or will not be returned premultiplied by the reference mapping matrix. The default is enabled (true).
virtual scalar get_pt_value (double x, double y, double z, int comp=0)
virtual void precalculate (const int np, const QuadPt3D *pt, int mask)
 precalculates the current function at the current integration points.
virtual order3_t get_order ()

Protected Types

enum  { UNDEF = -1, SLN, EXACT, CONST }

Protected Member Functions

void init_dxdydz_buffer ()
void precalculate_fe (const int np, const QuadPt3D *pt, int mask)
void precalculate_exact (const int np, const QuadPt3D *pt, int mask)
void precalculate_const (const int np, const QuadPt3D *pt, int mask)

Protected Attributes

enum Solution:: { ... }  type
bool transform
bool own_mesh
scalarmono_coefs
int * elem_coefs [3]
 monomial coefficient array
order3_telem_orders
 array of pointers into mono_coefs
int num_coefs
 stored element orders (copied from space)
int num_elems
int num_dofs
scalar cnst [3]
union {
   exact_fn_t   exact_fn
   exact_vec_fn_t   exact_vec_fn
 exact function
}; 
 constant solution
scalardxdydz_coefs [3][4]
scalardxdydz_buffer
 3 components, 4 types of values (FN, DX, DY, DZ)

Static Protected Attributes

static const int NUM_ELEMENTS = 4

Detailed Description

Represents the solution of a PDE.

Solution represents the solution of a PDE. Given a space and a solution vector, it calculates the appripriate linear combination of basis function at the specified element and integration points.


Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
UNDEF 
SLN 
EXACT 
CONST 

Constructor & Destructor Documentation

Solution::Solution ( Mesh mesh  ) 
Solution::~Solution (  )  [virtual]

Member Function Documentation

void Solution::assign ( Solution sln  ) 
void Solution::copy ( const Solution sln  ) 
void Solution::enable_transform ( bool  enable  ) 

Enables or disables transformation of the solution derivatives (H1 case) or values (vector (Hcurl) case). This means FN_DX_0 and FN_DY_0 or FN_VAL_0 and FN_VAL_1 will or will not be returned premultiplied by the reference mapping matrix. The default is enabled (true).

void Solution::free (  )  [virtual]

Frees all precalculated tables.

Implements Function< TYPE >.

order3_t Solution::get_order (  )  [virtual]
Returns:
Order of the function on the active element

Implements MeshFunction.

virtual scalar Solution::get_pt_value ( double  x,
double  y,
double  z,
int  comp = 0 
) [inline, virtual]
void Solution::init_dxdydz_buffer (  )  [protected]
Solution& Solution::operator= ( Solution sln  )  [inline]
void Solution::precalculate ( const int  np,
const QuadPt3D pt,
int  mask 
) [virtual]

precalculates the current function at the current integration points.

Implements Function< TYPE >.

void Solution::precalculate_const ( const int  np,
const QuadPt3D pt,
int  mask 
) [protected]
void Solution::precalculate_exact ( const int  np,
const QuadPt3D pt,
int  mask 
) [protected]
void Solution::precalculate_fe ( const int  np,
const QuadPt3D pt,
int  mask 
) [protected]
void Solution::set_active_element ( Element e  )  [virtual]

Called by the assembling procedure and by other functions. In PrecalcShapeset it sets an internal variable that can be later retrieved by get_active_element(). In Solution it selects the element to retrieve solution values for, etc.

Parameters:
[in] e - Element associated with the function being represented by the class.

Reimplemented from MeshFunction.

void Solution::set_const ( scalar  c0,
scalar  c1,
scalar  c2 
)
void Solution::set_const ( scalar  c  ) 
void Solution::set_exact ( exact_vec_fn_t  exactfn  ) 
void Solution::set_exact ( exact_fn_t  exactfn  ) 
void Solution::set_fe_solution ( Space space,
scalar vec,
double  dir = 1.0 
) [virtual]
void Solution::set_zero (  ) 
void Solution::set_zero_3 (  ) 

Member Data Documentation

union { ... } [protected]

constant solution

scalar Solution::cnst[3] [protected]

3 components, 4 types of values (FN, DX, DY, DZ)

scalar* Solution::dxdydz_coefs[3][4] [protected]
int* Solution::elem_coefs[3] [protected]

monomial coefficient array

array of pointers into mono_coefs

exact function

int Solution::num_coefs [protected]

stored element orders (copied from space)

int Solution::num_dofs [protected]
const int Solution::NUM_ELEMENTS = 4 [static, protected]
int Solution::num_elems [protected]
bool Solution::own_mesh [protected]
bool Solution::transform [protected]
enum { ... } Solution::type [protected]

The documentation for this class was generated from the following files:
Generated on Fri Sep 3 09:22:20 2010 for Hermes3D Library: Real Version by  doxygen 1.6.3