WeakForm Class Reference

Represents the weak formulation of a problem. More...

#include <weakform.h>

List of all members.

Classes

struct  Area
struct  MatrixFormSurf
struct  MatrixFormVol
struct  Stage
struct  VectorFormSurf
struct  VectorFormVol

Public Member Functions

 WeakForm (int neq, bool mat_free=false)
 WeakForm (bool mat_free=false)
virtual ~WeakForm ()
int def_area (Tuple< int > area_markers)
void add_matrix_form (int i, int j, matrix_form_val_t fn, matrix_form_ord_t ord, SymFlag sym=UNSYM, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_matrix_form (matrix_form_val_t fn, matrix_form_ord_t ord, SymFlag sym=UNSYM, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_matrix_form_surf (int i, int j, matrix_form_val_t fn, matrix_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_matrix_form_surf (matrix_form_val_t fn, matrix_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_vector_form (int i, vector_form_val_t fn, vector_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_vector_form (vector_form_val_t fn, vector_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_vector_form_surf (int i, vector_form_val_t fn, vector_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void add_vector_form_surf (vector_form_val_t fn, vector_form_ord_t ord, int area=ANY, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
void set_ext_fns (void *fn, Tuple< MeshFunction * > ext=Tuple< MeshFunction * >())
order3_t get_int_order ()
bool is_matrix_free ()

Protected Member Functions

void get_stages (Space **spaces, std::vector< Stage > &stages, bool rhsonly)
bool ** get_blocks ()
 Returns a (neq x neq) array containing true in each element, if the corresponding block of weak forms is used, and false otherwise.
bool is_in_area (int marker, int area) const
bool is_sym () const

Protected Attributes

int neq
bool is_matfree
std::vector< Areaareas
std::vector< MatrixFormVolmfvol
std::vector< MatrixFormSurfmfsurf
std::vector< VectorFormVolvfvol
std::vector< VectorFormSurfvfsurf

Friends

class LinearProblem
class DiscreteProblem
class Precond

Detailed Description

Represents the weak formulation of a problem.

The WeakForm class represents the weak formulation of a system of linear PDEs. The number of equations ("neq") in the system is fixed and is passed to the constructor. The weak formulation of the system A(U,V) = L(V) has a block structure. A(U,V) is a (neq x neq) matrix of bilinear forms a_mn(u,v) and L(V) is a neq-component vector of linear forms l(v). U and V are the vectors of basis and test functions.


Constructor & Destructor Documentation

WeakForm::WeakForm ( int  neq,
bool  mat_free = false 
)
WeakForm::WeakForm ( bool  mat_free = false  ) 
WeakForm::~WeakForm (  )  [virtual]

Member Function Documentation

void WeakForm::add_matrix_form ( matrix_form_val_t  fn,
matrix_form_ord_t  ord,
SymFlag  sym = UNSYM,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
) [inline]
void WeakForm::add_matrix_form ( int  i,
int  j,
matrix_form_val_t  fn,
matrix_form_ord_t  ord,
SymFlag  sym = UNSYM,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
)
void WeakForm::add_matrix_form_surf ( matrix_form_val_t  fn,
matrix_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
) [inline]
void WeakForm::add_matrix_form_surf ( int  i,
int  j,
matrix_form_val_t  fn,
matrix_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
)
void WeakForm::add_vector_form ( vector_form_val_t  fn,
vector_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
) [inline]
void WeakForm::add_vector_form ( int  i,
vector_form_val_t  fn,
vector_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
)
void WeakForm::add_vector_form_surf ( vector_form_val_t  fn,
vector_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
) [inline]
void WeakForm::add_vector_form_surf ( int  i,
vector_form_val_t  fn,
vector_form_ord_t  ord,
int  area = ANY,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
)
int WeakForm::def_area ( Tuple< int >  area_markers  ) 
bool ** WeakForm::get_blocks (  )  [protected]

Returns a (neq x neq) array containing true in each element, if the corresponding block of weak forms is used, and false otherwise.

order3_t WeakForm::get_int_order (  ) 
void WeakForm::get_stages ( Space **  spaces,
std::vector< Stage > &  stages,
bool  rhsonly 
) [protected]
bool WeakForm::is_in_area ( int  marker,
int  area 
) const [inline, protected]
bool WeakForm::is_matrix_free (  )  [inline]
bool WeakForm::is_sym (  )  const [inline, protected]
void WeakForm::set_ext_fns ( void *  fn,
Tuple< MeshFunction * >  ext = Tuple<MeshFunction*> () 
)

Friends And Related Function Documentation

friend class DiscreteProblem [friend]
friend class LinearProblem [friend]
friend class Precond [friend]

Member Data Documentation

std::vector<Area> WeakForm::areas [protected]
bool WeakForm::is_matfree [protected]
std::vector<MatrixFormSurf> WeakForm::mfsurf [protected]
std::vector<MatrixFormVol> WeakForm::mfvol [protected]
int WeakForm::neq [protected]
std::vector<VectorFormSurf> WeakForm::vfsurf [protected]
std::vector<VectorFormVol> WeakForm::vfvol [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