00001 #include <SyFi.h> 00002 00003 using namespace GiNaC; 00004 00005 void usage(FE& fe) { 00006 ex Ni; 00007 ex gradNi; 00008 ex dofi; 00009 for (int i=0; i< fe.nbf() ; i++) { 00010 Ni = fe.N(i); 00011 gradNi = grad(Ni); 00012 dofi = fe.dof(i); 00013 cout <<"The basis function, N("<<i<<")="<<Ni<<endl; 00014 cout <<"The gradient of N("<<i<<")="<<gradNi<<endl; 00015 cout <<"The corresponding dof, L("<<i<<")="<<dofi<<endl; 00016 } 00017 } 00018 00019 00020 00021 int main(){ 00022 int order = 1; 00023 Triangle triangle(lst(0,0), lst(1,0), lst(0,1)); 00024 LagrangeFE fe; 00025 fe.set(order); 00026 fe.set(triangle); 00027 fe.compute_basis_functions(); 00028 00029 usage(fe); 00030 00031 } 00032 00033