poisson.cpp

Go to the documentation of this file.
00001 #include <FE.h>
00002 
00003 
00004 // could have several versions of this example 
00005 // 1. Std example using the reference element
00006 // 2. Example using globale element
00007 // 3. Simple code generation, just printing out a element matrix
00008 // 4. Code generation towards a backend FFC
00009 // 5. With Diffpack
00010 // 6. With ML 
00011 
00012 
00013 
00014 void poisson() {
00015   std::map<std::pair<int,int>,double> A;
00016   std::map<int, double> b; 
00017   std::pair<int,int> index;
00018 
00019   LagrangeFE fe;
00020   Dof           dof;
00021   int t=0; 
00022 
00023   Triangle triangle; Mesh mesh;  
00024   int ig, jg; 
00025   for ( triangle = mesh.iter.begin(); triangle != mesh.iter.end(); triangle++) { 
00026     t++; 
00027     fe.set(triangle); 
00028     fe.compute_basis_functions(); 
00029     for (int i=1; i <= fe.nbf(); i++) {  
00030       ig = dof.glob_dof(t, i, fe.dof(i)); 
00031       index.first = ig; 
00032       for (int j=1; j <= fe.nbf(); j++) {  
00033         jg = dof.glob_dof(t,j fe.dof(j)); 
00034         index.second = jg; 
00035         A[index] += integral(triangle,grad(fe.N(i)*grad(fe.N(j)))); 
00036       }
00037       b[ig] += integral(triangle,f*fe.N(i));  
00038     }
00039   }
00040 
00041 
00042 
00043 }
00044 
00045 

Generated on Tue Nov 22 11:10:22 2005 for SyFi by  doxygen 1.4.4