00001 #include <SyFi.h>
00002
00003 using namespace GiNaC;
00004
00005 int main() {
00006
00007 Dof dof;
00008
00009
00010 Triangle t1(lst(0,0), lst(1,0), lst(0,1));
00011 Triangle t2(lst(1,1), lst(1,0), lst(0,1));
00012
00013
00014 ex Nj = pol(1,2,"a");
00015 cout <<"Nj " <<Nj<<endl;
00016 Line line;
00017 ex dofi;
00018
00019
00020 for (int i=1; i<= 3; i++) {
00021 line = t1.line(i);
00022 dofi = line.integrate(Nj);
00023 dof.insert_dof(1,i, dofi);
00024 }
00025
00026
00027 for (int i=1; i<= 3; i++) {
00028 line = t2.line(i);
00029 dofi = line.integrate(Nj);
00030 dof.insert_dof(2,i, dofi);
00031 }
00032
00033
00034
00035 vector<pair<int,int> > vec;
00036 pair<int,int> index;
00037 ex exdof;
00038 for (int i=1; i<= dof.size(); i++) {
00039 exdof = dof.glob_dof(i);
00040 vec = dof.glob2loc(i);
00041 cout <<"global dof " <<i<<" dof "<<exdof<<endl;
00042 for (int j=0; j<vec.size(); j++) {
00043 index = vec[j];
00044 cout <<" element "<<index.first<<" local dof "<<index.second<<endl;
00045 }
00046 }
00047
00048
00049 }
00050
00051
00052