void saveSubMeshFromMarked3Elements() { auto meshMark1 = createSubmesh( M_mesh, marked3elements(M_mesh,1),EXTRACTION_KEEP_MESH_RELATION, 0, false); saveGMSHMesh(_mesh=meshMark1,_filename="submesh-marked3elementsBy1.msh"); auto meshMark0 = createSubmesh( M_mesh, marked3elements(M_mesh,0),EXTRACTION_KEEP_MESH_RELATION, 0, false); saveGMSHMesh(_mesh=meshMark0,_filename="submesh-marked3elementsBy0.msh"); }
boost::tuple<mpl::size_t<MESH_ELEMENTS>, typename MeshTraits<MeshType>::marker3_element_const_iterator, typename MeshTraits<MeshType>::marker3_element_const_iterator> marked3elements( MeshType const& mesh, flag_type flag, rank_type pid, mpl::bool_<true> ) { return marked3elements( *mesh, flag, pid, mpl::bool_<false>() ); }
boost::shared_ptr<Mesh<Simplex<2> > > createSubMeshLaplacianBlock(boost::shared_ptr<Mesh<Simplex<2> > > mesh) { auto P0d = Pdh<0>(mesh); double r=0.2; auto proj = vf::project(_space=P0d,_range=elements(mesh), _expr=vf::chi( (Px()*Px()+Py()*Py()) < r*r ) ); mesh->updateMarker3( proj ); auto submesh = createSubmesh( mesh, marked3elements(mesh,1) ); //saveGMSHMesh(_mesh=submesh,_filename="mysubmesh.msh"); return submesh; }