fe_ex2.cpp File Reference

#include <SyFi.h>
#include <fstream>

Go to the source code of this file.

Functions

int main ()


Function Documentation

int main (  ) 

Definition at line 8 of file fe_ex2.cpp.

References demos::poisson1::Aij, SyFi::compare_archives(), SyFi::Lagrange::compute_basis_functions(), demos::crouzeixraviart::fe, SyFi::grad(), SyFi::initSyFi(), SyFi::inner(), SyFi::Triangle::integrate(), SyFi::istr(), SyFi::StandardFE::N(), SyFi::StandardFE::nbf(), SyFi::StandardFE::set_order(), and SyFi::StandardFE::set_polygon().

00008            {
00009 
00010     initSyFi(2); 
00011 
00012     Triangle T(lst(0,0), lst(1,0), lst(0,1), "t"); 
00013     int order = 2; 
00014 
00015     std::map<std::pair<int,int>, ex> A;
00016     std::pair<int,int> index;
00017     Lagrange fe; 
00018     fe.set_order(order); 
00019     fe.set_polygon(T); 
00020     fe.compute_basis_functions(); 
00021     for (int i=0; i< fe.nbf() ; i++) {
00022         index.first = i; 
00023         for (int j=0; j< fe.nbf() ; j++) {
00024             index.second = j; 
00025             ex nabla = inner(grad(fe.N(i)), grad(fe.N(j))); 
00026             ex Aij = T.integrate(nabla);   
00027             A[index] = Aij;  
00028         }
00029     }
00030 
00031     map<std::pair<int,int>,ex>::iterator iter; 
00032     for (iter = A.begin(); iter != A.end() ; iter++) {
00033         cout <<"A["<<(*iter).first.first<<","<<(*iter).first.second<<"]="<<(*iter).second<<endl; 
00034     }
00035 
00036 
00037     // regression test 
00038     archive ar; 
00039     for (iter = A.begin(); iter != A.end() ; iter++) {
00040         ar.archive_ex((*iter).second, istr("A", (*iter).first.first, (*iter).first.second).c_str()); 
00041     }
00042     ofstream vfile("fe_ex2.gar.v"); 
00043     vfile << ar; vfile.close(); 
00044     if(!compare_archives("fe_ex2.gar.v", "fe_ex2.gar.r")) { 
00045             cerr << "Failure!" << endl;
00046             return -1;
00047     }
00048 
00049     return 0; 
00050 }


Generated on Mon Aug 31 16:16:49 2009 for SyFi by  doxygen 1.5.9