int main( int argc, char** argv ) { double min[2] = { -M_PI, -M_PI }; double max[2] = { +M_PI, +M_PI }; bool periodic[2] = { false, false }; int nx[2] = { 8, 8 }; Mesh* mesh = new Mesh( "mesh", nx, "legendre", 8, min, max, periodic ); Field* field = new Field( "field", mesh, 1, NULL ); Transform* trans = new Transform( field ); mesh->Save(); trans->fMesh->Save(); field->SetICFunc( 0, r0 ); WriteXDMFHeader( 0 ); WriteXDMF( &field, 1, 0, 0.0, 0.0 ); WriteXDMFFooter( 0 ); trans->Interp(); WriteXDMFHeader( 1 ); WriteXDMF( &trans->fField, 1, 1, 0.0, 0.0 ); WriteXDMFFooter( 1 ); field->SetICFunc( 0, r1 ); WriteXDMFHeader( 2 ); WriteXDMF( &field, 1, 2, 0.0, 0.0 ); WriteXDMFFooter( 2 ); trans->Interp(); WriteXDMFHeader( 3 ); WriteXDMF( &trans->fField, 1, 3, 0.0, 0.0 ); WriteXDMFFooter( 3 ); trans->Forward(); WriteXDMFHeader( 4 ); WriteXDMF( &trans->fField, 1, 4, 0.0, 0.0 ); WriteXDMFFooter( 4 ); Filter( trans->fField ); trans->Backward(); WriteXDMFHeader( 5 ); WriteXDMF( &field, 1, 5, 0.0, 0.0 ); WriteXDMFFooter( 5 ); delete mesh; delete field; delete trans; return 1; }