using namespace std;
int main(
int argc,
char**argv) {
size_t subdivide = (argc > 1) ? atoi(argv[1]) : 3;
Float field_error = (argc > 2) ? atof(argv[2]) : 1e-3;
bool do_verbose = true;
bool do_clean = true;
string cleanlist;
check_macro (communicator().size() == 1, "zalesak_dg_adapt: command may be used as mono-process only");
field_basic<Float,sequential> phi0_h, phi_h;
branch_basic<Float,sequential> ievent ("t","phi");
din >> ievent (t0, phi0_h);
while (
din >> ievent (tf, phi_h));
const space& Xh = phi_h.get_space();
branch_basic<Float,sequential> oevent ("t", "c", "phi0", "phi");
<< oevent (t0, ch, phi0_h, phi_h);
cleanlist +=
tmp+
"criterion-0.vtk";
string py_name =
tmp+
"adapt.py";
cleanlist += " "+py_name;
bool view_2d = phi_h.get_geo().map_dimension() < 3;
py << "#!/usr/bin/env pvbatch --script=" << endl
<< "# This is a paraview script automatically generated by rheolef." << endl
<< endl
<< "from paraview.simple import *" << endl
<< "from paraview_rheolef import * # load rheolef specific functions" << endl
<< endl
<< "opt = { \\" << endl
<< " 'mark' : 'c', \\" << endl
<< " 'view_2d' : " << view_2d << ", \\" << endl
<< " 'geo_error' : " << geo_error << ", \\" << endl
<< " 'field_error' : " << field_error << ", \\" << endl
<< " 'subdivide' : " << subdivide << " \\" << endl
<< " }" << endl
<< endl
<<
"adapt_Pk_iso_P1 (paraview, \""<<
tmp<<
"criterion-0.vtk\", \""<<
tmp<<
"adapt.vtk\", opt)" << endl
<< endl
;
string prog = "pvbatch --force-offscreen-rendering ";
cleanlist +=
" "+
tmp+
"adapt.vtk";
field_basic<Float,sequential> c_ha, phi0_ha, phi_ha;
idiststream in_vtk (
tmp+
"adapt.vtk");
iorheo::setbasename(in_vtk.is(),"adapt");
branch_basic<Float,sequential> ia_event ("t", "c", "phi0", "phi");
in_vtk >> ia_event (t, c_ha, phi0_ha, phi_ha);
c_ha.get_geo().save();
<< oa_event (t0, phi0_ha)
<< oa_event (tf, phi_ha);
if (do_clean) {
}
if (do_verbose) {
cerr << "zalesak_dg_adapt: mesh size " << Xh.get_geo().size()
<< " -> " << phi_ha.get_geo().size() << endl;
}
}
see the Float page for the full documentation
see the branch page for the full documentation
idiststream din
see the diststream page for the full documentation
odiststream dout(cout)
see the diststream page for the full documentation
odiststream derr(cerr)
see the diststream page for the full documentation
see the space page for the full documentation
#define _RHEOLEF_PKGDATADIR
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color format format format format format format format format format format format format format format format format vtk
verbose clean transpose logscale grid shrink ball stereo iso volume skipvtk deformation fastfieldload lattice reader_on_stdin color rheo
This file is part of Rheolef.
field_basic< T, M > interpolate(const space_basic< T, M > &V2h, const field_basic< T, M > &u1h)
see the interpolate page for the full documentation
int dis_system(const std::string &command, const communicator &comm)
details::field_expr_v2_nonlinear_node_nary< typename details::function_traits< Function >::functor_type,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits< Exprs >::type... > ::type compose(const Function &f, const Exprs &... exprs)
see the compose page for the full documentation
std::string get_tmpdir()
get_tmpdir: see the rheostream page for the full documentation
The Zalesak slotted disk benchmark – the exact solution.
Float criterion(const Float &x, const Float &y)
int main(int argc, char **argv)
Float heaviside(const Float &x)