00001 #include <SyFi.h> 00002 00003 using namespace GiNaC; 00004 00005 00006 00007 00008 00009 void check_RaviartThomas() { 00010 00011 ReferenceTriangle triangle("t"); 00012 RaviartThomas fe; 00013 fe.set(triangle); 00014 00015 cout <<"2D --------------------- 1 order "<<endl; 00016 fe.set(1); 00017 fe.compute_basis_functions(); 00018 usage(fe); 00019 00020 cout <<"2D ----------------------2 order "<<endl; 00021 fe.set(2); 00022 fe.compute_basis_functions(); 00023 usage(fe); 00024 00025 cout <<"2D ----------------------3 order "<<endl; 00026 fe.set(3); 00027 fe.compute_basis_functions(); 00028 usage(fe); 00029 00030 cout <<"2D ----------------------4 order "<<endl; 00031 fe.set(4); 00032 fe.compute_basis_functions(); 00033 usage(fe); 00034 00035 cout <<"2D ----------------------5 order "<<endl; 00036 fe.set(5); 00037 fe.compute_basis_functions(); 00038 usage(fe); 00039 00040 00041 00042 //FIXME: this is not nice...... 00043 nsd = 3; 00044 00045 ReferenceTetrahedron tetrahedron("t"); 00046 fe.set(tetrahedron); 00047 00048 00049 cout <<"3D ----------------------1 order "<<endl; 00050 fe.set(1); 00051 fe.compute_basis_functions(); 00052 usage(fe); 00053 00054 cout <<"3D ----------------------2 order "<<endl; 00055 fe.set(2); 00056 fe.compute_basis_functions(); 00057 usage(fe); 00058 00059 cout <<"3D ----------------------3 order "<<endl; 00060 fe.set(3); 00061 fe.compute_basis_functions(); 00062 usage(fe); 00063 00064 cout <<"3D ----------------------4 order "<<endl; 00065 fe.set(4); 00066 fe.compute_basis_functions(); 00067 usage(fe); 00068 00069 00070 00071 00072 00073 00074 } 00075 00076 00077 int main() { 00078 check_RaviartThomas(); 00079 } 00080 00081 00082