00001 /* 00002 * VarForm.h 00003 * 00004 * Created on: Oct 24, 2011 00005 * Author: mmendes 00006 */ 00007 00008 #ifndef VARFORM_H_ 00009 00010 #define VARFORM_H_ 00011 00012 #include "orthomesh.h" 00013 #include "finiteelementinterface.h" 00014 #include "feorthomesh.h" 00015 #include "globals.h" 00016 00025 class VarForm { 00026 00027 private: 00028 OrthoMesh *_pMesh; 00029 FEOrthoMesh &_fe; 00030 public: 00031 00032 VarForm(FEOrthoMesh &fe) 00033 :_fe(fe) 00034 {} 00035 00036 00047 void assembly_local_system(Matrix &ML) 00048 { 00049 throw new Exception("VarFom::assembly_local_system not overriden by child"); 00050 } 00051 00052 00053 void assembly_local_rhs(VecDouble &BL) 00054 { 00055 throw new Exception("VarFom::assembly_local_rhs not overriden by child"); 00056 } 00057 00058 00067 virtual const Matrix& get_local_sparsity() 00068 { 00069 throw new Exception("VarForm::get_local_sparsity() not overriden by child class"); 00070 } 00071 00072 void reinit(OrthoMesh::Cell_It &cell) 00073 { 00074 throw new Exception("VarForm::reinit(OrthoMesh::Cell_It &cell) not overriden by child class"); 00075 } 00076 00077 void reinit(OrthoMesh &mesh) 00078 { 00079 throw new Exception("VarForm::reinit(OrthoMesh &mesh) not overriden by child class"); 00080 } 00081 00082 00087 const VecIndex& get_global_map() 00088 { 00089 throw new Exception("VarForm::get_global_map() not overriden by child class"); 00090 } 00091 00092 00093 ~VarForm(){} 00094 }; 00095 00096 #endif /* VARFORM_H_ */