Skip to content
Snippets Groups Projects
Commit 0d460e65 authored by alkaemper's avatar alkaemper
Browse files

make it work with a lot of runtime, but no exception

parent d6fed318
No related branches found
No related tags found
No related merge requests found
......@@ -39,10 +39,11 @@ void estimateClosure ( GridType &grid , int level = 0 )
typedef typename GridType::GlobalIdSet IndexSetType;
typedef typename IndexSetType::IdType IdType;
typedef typename GridType::template Codim< 0 >::Entity EntityType;
const IndexSetType & macroIdSet = grid.globalIdSet();
std::map< IdType, size_t > elementClosure;
std::set< IdType > doneElements;
typedef typename GridType::LeafGridView LeafGridViewType;
Dune::VTKSequenceWriter< LeafGridViewType > vtkout( grid.leafGridView(), "solution" + level, "./", ".", Dune::VTK::nonconforming );
......@@ -54,14 +55,24 @@ void estimateClosure ( GridType &grid , int level = 0 )
size_t maxClosure = 0;
//loop over all macro elements.
for( const auto & macroEntity : Dune::elements( grid.leafGridView( ) ) )
while( doneElements.size() < macroSize )
{
//if elementClosure calculated - continue
const IdType macroId = macroIdSet.id( macroEntity );
if( elementClosure.find( macroId ) != elementClosure.end() )
EntityType macroEntity;// = *(grid.leafGridView().template begin< 0 >() );
IdType macroId;
//find new elements
for(const auto & entity : Dune::elements(grid.leafGridView() ) )
{
continue;
const IdType id = macroIdSet.id( entity );
if( doneElements.find( id ) == doneElements.end() )
{
doneElements.insert(id);
macroEntity = entity;
macroId = id;
break;
}
}
if( elementClosure.find( macroId ) != elementClosure.end() ) continue;
//mark for refinement
grid.mark( 1, macroEntity );
//adapt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment