Beispiel #1
0
 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");
 }
Beispiel #2
0
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;
}