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