#include <varformorthomesh.h>
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 |
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.
VarFormOrthoMesh::VarFormOrthoMesh | ( | FEOrthoMesh & | fe | ) | [inline] |
Definition at line 24 of file varformorthomesh.h.
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()
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
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 |
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.
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
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.
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
mesh |
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 }
FEOrthoMesh& VarFormOrthoMesh::_fe [protected] |
Definition at line 18 of file varformorthomesh.h.
OrthoMesh* VarFormOrthoMesh::_pMesh [protected] |
Definition at line 17 of file varformorthomesh.h.