|
SyFi
0.3
|
Go to the source code of this file.
Functions | |
| int | main () |
| int main | ( | ) |
Definition at line 8 of file mxpoisson_ex.cpp.
References SyFi::P0::compute_basis_functions(), SyFi::RaviartThomas::compute_basis_functions(), SyFi::DiscontinuousLagrange::compute_basis_functions(), SyFi::compute_mixed_Poisson_element_matrix(), SyFi::initSyFi(), print(), SyFi::StandardFE::set_order(), SyFi::StandardFE::set_polygon(), and SyFi::usage().
{
initSyFi(2);
ReferenceTriangle domain;
// First the lowest order.
// The lowest order is special, because we must use P0
RaviartThomas v_fe;
v_fe.set_order(1);
v_fe.set_polygon(domain);
v_fe.compute_basis_functions();
P0 p_fe;
p_fe.set_polygon(domain);
p_fe.compute_basis_functions();
usage(v_fe, p_fe);
Dof dof;
std::map<std::pair<unsigned int,unsigned int>, ex> A;
compute_mixed_Poisson_element_matrix(v_fe, p_fe, dof, A);
print(A);
// Then for instance order 3
int order = 3;
RaviartThomas v_fe2;
v_fe2.set_order(order);
v_fe2.set_polygon(domain);
v_fe2.compute_basis_functions();
DiscontinuousLagrange p_fe2;
p_fe2.set_order(order);
p_fe2.set_polygon(domain);
p_fe2.compute_basis_functions();
usage(v_fe2, p_fe2);
Dof dof2;
std::map<std::pair<unsigned int,unsigned int>, ex> A2;
compute_mixed_Poisson_element_matrix(v_fe2, p_fe2, dof2, A2);
print(A2);
/* comment out test for now
// regression test
archive ar;
map<std::pair<unsigned int,unsigned int>,ex>::iterator iter;
for (iter = A.begin(); iter != A.end() ; iter++) {
ar.archive_ex((*iter).second, istr("A_", (*iter).first.first, (*iter).first.second).c_str());
}
for (iter = A2.begin(); iter != A2.end() ; iter++) {
ar.archive_ex((*iter).second, istr("A2_", (*iter).first.first, (*iter).first.second).c_str());
}
ofstream vfile("mxpoisson_ex.gar.v");
vfile << ar; vfile.close();
if(!compare_archives("mxpoisson_ex.gar.v", "mxpoisson_ex.gar.r")) {
cerr << "Failure!" << endl;
return -1;
}
*/
return 0;
}