00001 #include <SyFi.h> 00002 00003 int main() { 00004 Triangle T(lst(0,0), lst(1,0), lst(0,1), "t"); 00005 int order = 2; 00006 00007 std::map<std::pair<int,int>, ex> A; 00008 std::pair<int,int> index; 00009 LagrangeFE fe; 00010 fe.set(order); 00011 fe.set(T); 00012 fe.compute_basis_functions(); 00013 for (int i=1; i<= fe.nbf() ; i++) { 00014 index.first = i; 00015 for (int j=1; j<= fe.nbf() ; j++) { 00016 index.second = j; 00017 ex nabla = inner(grad(fe.N(i)), grad(fe.N(j))); 00018 ex Aij = T.integrate(nabla); 00019 A[index] = Aij; 00020 } 00021 } 00022 00023 map<std::pair<int,int>,ex>::iterator iter; 00024 for (iter = A.begin(); iter != A.end() ; iter++) { 00025 ex intf = (*iter).second; 00026 cout <<"A["<<(*iter).first.first<<","<<(*iter).first.second<<"]="<<(*iter).second<<endl; 00027 } 00028 00029 00030 00031 } 00032 00033 00034