|
SyFi
0.3
|
#include <SyFi.h>Go to the source code of this file.
Functions | |
| int | main () |
| int main | ( | ) |
Definition at line 7 of file dof_ex2.cpp.
References SyFi::Dof::glob2loc(), SyFi::Dof::glob_dof(), SyFi::initSyFi(), SyFi::Dof::insert_dof(), SyFi::Line::integrate(), SyFi::Triangle::line(), SyFi::pol(), and SyFi::Dof::size().
{
initSyFi(2);
Dof dof(true, true);
// create two triangles
Triangle t1(lst(0,0), lst(1,0), lst(0,1));
Triangle t2(lst(1,1), lst(1,0), lst(0,1));
// create the polynomial space
ex Nj = pol(1,2,"a");
cout <<"Nj " <<Nj<<endl;
Line line;
ex dofi;
// dofs on first triangle
for (unsigned int i=0; i< 3; i++) {
line = t1.line(i); // pick out the i'th line
dofi = line.integrate(Nj); // create the dof which is a line integral
dof.insert_dof(1,i, dofi); // insert local dof in global set of dofs
}
// dofs on second triangle
for (unsigned int i=0; i< 3; i++) {
line = t2.line(i); // pick out the i'th line
dofi = line.integrate(Nj); // create the dof which is a line integral
dof.insert_dof(2,i, dofi); // insert local dof in global set of dofs
}
// Print out the global degrees of freedom an their
// corresponding local degrees of freedom
vector<pair<unsigned int,unsigned int> > vec;
pair<unsigned int,unsigned int> index;
ex exdof;
for (unsigned int i=0; i< dof.size(); i++) {
exdof = dof.glob_dof(i);
vec = dof.glob2loc(i);
cout <<"global dof " <<i<<" dof "<<exdof<<endl;
for (unsigned int j=0; j<vec.size(); j++) {
index = vec[j];
cout <<" element "<<index.first<<" local dof "<<index.second<<endl;
}
}
}