diff --git a/packages/shylu/shylu_dd/frosch/src/SchwarzOperators/FROSch_HarmonicCoarseOperator_def.hpp b/packages/shylu/shylu_dd/frosch/src/SchwarzOperators/FROSch_HarmonicCoarseOperator_def.hpp index b9b6b12303df..ed3db33e573c 100644 --- a/packages/shylu/shylu_dd/frosch/src/SchwarzOperators/FROSch_HarmonicCoarseOperator_def.hpp +++ b/packages/shylu/shylu_dd/frosch/src/SchwarzOperators/FROSch_HarmonicCoarseOperator_def.hpp @@ -121,27 +121,20 @@ namespace FROSch { int HarmonicCoarseOperator::addZeroCoarseSpaceBlock(ConstXMapPtr dofsMap) { FROSCH_DETAILTIMER_START_LEVELID(addZeroCoarseSpaceBlockTime,"HarmonicCoarseOperator::addZeroCoarseSpaceBlock"); + ///// + int blockId = NumberOfBlocks_-1; + + // Process the parameter list + stringstream blockIdStringstream; + blockIdStringstream << blockId+1; + string blockIdString = blockIdStringstream.str(); + RCP coarseSpaceList = sublist(sublist(this->ParameterList_,"Blocks"),blockIdString.c_str()); bool useForCoarseSpace = coarseSpaceList->get("Use For Coarse Space",true); if (useForCoarseSpace) { // Das könnte man noch ändern - GammaDofs_->resize(GammaDofs_.size()+1); - IDofs_->resize(IDofs_.size()+1); - InterfaceCoarseSpaces_->resize(InterfaceCoarseSpaces_.size()+1); - DofsMaps_->resize(DofsMaps_.size()+1); - DofsPerNode_->resize(DofsPerNode_.size()+1); - NumberOfBlocks_++; - ///// - int blockId = NumberOfBlocks_-1; - - // Process the parameter list - stringstream blockIdStringstream; - blockIdStringstream << blockId+1; - string blockIdString = blockIdStringstream.str(); - RCP coarseSpaceList = sublist(sublist(this->ParameterList_,"Blocks"),blockIdString.c_str()); - GammaDofs_[blockId] = LOVecPtr(0); XMultiVectorPtr mVPhiGamma; @@ -162,6 +155,12 @@ namespace FROSch { } } + GammaDofs_->resize(GammaDofs_.size()+1); + IDofs_->resize(IDofs_.size()+1); + InterfaceCoarseSpaces_->resize(InterfaceCoarseSpaces_.size()+1); + DofsMaps_->resize(DofsMaps_.size()+1); + DofsPerNode_->resize(DofsPerNode_.size()+1); + IDofs_[blockId] = LOVecPtr(0); if (useForCoarseSpace) {