#include <SyFi.h>
#include <fstream>
Go to the source code of this file.
Functions | |
int | main () |
int main | ( | ) |
Definition at line 8 of file crouzeixraviart_ex2.cpp.
References SyFi::compare_archives(), SyFi::P0::compute_basis_functions(), SyFi::VectorCrouzeixRaviart::compute_basis_functions(), SyFi::compute_Stokes_element_matrix(), SyFi::initSyFi(), SyFi::istr(), SyFi::StandardFE::N(), SyFi::StandardFE::nbf(), print(), SyFi::StandardFE::set_polygon(), SyFi::VectorCrouzeixRaviart::set_size(), and test::usage.
00008 { 00009 00010 initSyFi(2); 00011 00012 ReferenceTriangle domain; 00013 00014 VectorCrouzeixRaviart v_fe; 00015 v_fe.set_size(2); 00016 v_fe.set_polygon(domain); 00017 v_fe.compute_basis_functions(); 00018 00019 P0 p_fe; 00020 p_fe.set_polygon(domain); 00021 p_fe.compute_basis_functions(); 00022 00023 usage(v_fe, p_fe); 00024 00025 00026 Dof dof; 00027 std::map<std::pair<unsigned int,unsigned int>, ex> A; 00028 compute_Stokes_element_matrix(v_fe, p_fe, dof, A); 00029 print(A); 00030 00031 00032 // regression test 00033 00034 archive ar; 00035 for (unsigned int i=0; i<v_fe.nbf(); i++) { 00036 ar.archive_ex(v_fe.N(i), istr("vN",i).c_str()); 00037 } 00038 for (unsigned int i=0; i<p_fe.nbf(); i++) { 00039 ar.archive_ex(p_fe.N(i), istr("pN",i).c_str()); 00040 } 00041 00042 std::map<std::pair<unsigned int,unsigned int>, ex>::iterator iter; 00043 for (iter = A.begin(); iter != A.end() ; iter++) { 00044 ar.archive_ex((*iter).second, istr("A", (*iter).first.first, (*iter).first.second).c_str()); 00045 } 00046 00047 ofstream vfile("crouzeixraviart_ex2.gar.v"); 00048 vfile << ar; vfile.close(); 00049 if(!compare_archives("crouzeixraviart_ex2.gar.v", "crouzeixraviart_ex2.gar.r")) { 00050 cerr << "Failure!" << endl; 00051 return -1; 00052 } 00053 00054 return 0; 00055 }