VarFormOrthoMesh Class Reference

#include <varformorthomesh.h>

Inheritance diagram for VarFormOrthoMesh:
Inheritance graph
[legend]
Collaboration diagram for VarFormOrthoMesh:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 VarFormOrthoMesh (FEOrthoMesh &fe)
FEOrthoMesh & getFE ()
OrthoMesh * getMesh ()
void reinit (OrthoMesh &mesh)
void reinit (OrthoMesh::Cell_It &cell)
virtual void assembly_local_system (OrthoMesh::Cell_It &cell, Matrix &ML)=0
virtual void assembly_local_rhs (OrthoMesh::Cell_It &cell, VecDouble &BL)=0
virtual const Matrix & get_local_sparsity ()=0
virtual void neumann_condition (VecDouble &Bl, OrthoMesh::Cell_It cell, OrthoMesh::Face_It face, unsigned face_dir, Function3D &fN)=0

Protected Member Functions

virtual void mesh_change (OrthoMesh &mesh)=0

Protected Attributes

OrthoMesh * _pMesh
FEOrthoMesh & _fe

Detailed Description

VarFormOrthoMesh

DONT EVER, HIDE THE METHOD reinit(OrthoMesh*) IN THE DERIVED CLASS. IF YOU NEED TO DO SOMETHING LIKE THAT, OVERRIDE THE METHOD mesh_change INSTEAD

Definition at line 13 of file varformorthomesh.h.


Constructor & Destructor Documentation

VarFormOrthoMesh::VarFormOrthoMesh ( FEOrthoMesh &  fe  )  [inline]

Definition at line 24 of file varformorthomesh.h.

00025     :_fe(fe)
00026   {
00027     _pMesh=NULL;
00028   }


Member Function Documentation

virtual void VarFormOrthoMesh::assembly_local_rhs ( OrthoMesh::Cell_It &  cell,
VecDouble &  BL 
) [pure virtual]

Assembly the local system right hand side not including the Neumman Condition. That is computed in another method neumann_condition()

Parameters:
cell The cell in the mesh to build the local system
BL To contain the right hand side of the local system The method assumes that the vector has already the correct size. You can get the local system rank using the dimension of the matrix returned by get_local_sparsity() method.

Implemented in VarFormPoisson.

virtual void VarFormOrthoMesh::assembly_local_system ( OrthoMesh::Cell_It &  cell,
Matrix &  ML 
) [pure virtual]

Assembly the local system

Parameters:
cell The cell in the mesh to build the local system
ML Matrix to contain the local system. The method assumes that the local matrix has already the correct sizes. You can get the local system rank using the dimension of the matrix returned by get_local_sparsity() method
Returns:
The local system at parameter ML

Implemented in VarFormPoisson.

virtual const Matrix& VarFormOrthoMesh::get_local_sparsity (  )  [pure virtual]

Get the sparsity of the local system. The sparsity is represented by a full matrix with the same size as the local system matrix. A zero entry on position (i,j) means that this position is always zero in the local system. 1 means that such entry is always different of zero.

Returns:
The sparsity pattern of the local system

Implemented in VarFormPoisson.

FEOrthoMesh& VarFormOrthoMesh::getFE (  )  [inline]

Definition at line 30 of file varformorthomesh.h.

00030 {return _fe;}

OrthoMesh* VarFormOrthoMesh::getMesh (  )  [inline]

Definition at line 31 of file varformorthomesh.h.

00031 {return _pMesh;}

virtual void VarFormOrthoMesh::mesh_change ( OrthoMesh &  mesh  )  [protected, pure virtual]

Implemented in VarFormPoisson.

virtual void VarFormOrthoMesh::neumann_condition ( VecDouble &  Bl,
OrthoMesh::Cell_It  cell,
OrthoMesh::Face_It  face,
unsigned  face_dir,
Function3D &  fN 
) [pure virtual]

Set the RHS of the local system with the Neumman condition

Parameters:
Bl To contain the RHS with neumann condition This vector should be initialized with the right size
cell Cell of the local system
face Face where to get the neumman condition. The face must belong to the cell passed on the previous parameter.
face_id The direction of the face in respect to the cell Ex: LEFT_FACE, RIGHT_FACE, BOTTOM_FACE .....
fN The function that specifies the Neumman condition. The meaning of this function is specific to each variational formulation. Programmers Note: Always write a piece of documentation containing the meaning (what the value is) of the neumman function. For example FN(x) = Vel(x)*n(x), where n is the outward normal or n is the inward normal and so on.

Implemented in VarFormPoisson.

void VarFormOrthoMesh::reinit ( OrthoMesh::Cell_It &  cell  )  [inline]

Definition at line 49 of file varformorthomesh.h.

00050   {
00051     
00052   }

void VarFormOrthoMesh::reinit ( OrthoMesh &  mesh  )  [inline]

Initialize the mesh, dont ever, hide this method in the derived class, if you need to do something like that, override the method mesh_change instead

Parameters:
mesh 
Returns:

Definition at line 40 of file varformorthomesh.h.

00041   {
00042     if (_pMesh == &mesh)
00043       return;
00044     _pMesh=&mesh;
00045     _fe.reinit(mesh);
00046     mesh_change(mesh);
00047   }


Member Data Documentation

Definition at line 18 of file varformorthomesh.h.

Definition at line 17 of file varformorthomesh.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Sun Apr 8 23:13:32 2012 for CO2INJECTION by  doxygen 1.6.3