diff --git a/AMDiS/src/DOFVector.cc b/AMDiS/src/DOFVector.cc index 3ec0cde47873b7515f71fb28f1eacd1053cb2f93..9858c2df926f9ed40dc4339c5f888b5061fbec08 100644 --- a/AMDiS/src/DOFVector.cc +++ b/AMDiS/src/DOFVector.cc @@ -279,7 +279,8 @@ namespace AMDiS { } } } else { - DimVec<double> grdPhi(dim, DEFAULT_VALUE, 0.0); + // DimVec<double> grdPhi(dim, DEFAULT_VALUE, 0.0); + DimVec<double>* grdPhi = grdPhis[omp_get_thread_num()]; for (int i = 0; i < numPoints; i++) { for (int j = 0; j < dim + 1; j++) { @@ -287,9 +288,9 @@ namespace AMDiS { } for (int j = 0; j < nBasFcts; j++) { - (*(basFcts->getGrdPhi(j)))(quad->getLambda(i), grdPhi); + (*(basFcts->getGrdPhi(j)))(quad->getLambda(i), *grdPhi); for (int k = 0; k < parts; k++) { - grd1[k] += grdPhi[k] * localVec[j]; + grd1[k] += (*grdPhi)[k] * localVec[j]; } } @@ -379,7 +380,9 @@ namespace AMDiS { } } } else { - DimMat<double> D2Phi(dim, NO_INIT); + // DimMat<double> D2Phi(dim, NO_INIT); + DimMat<double>* D2Phi = D2Phis[omp_get_thread_num()]; + for (iq = 0; iq < numPoints; iq++) { for (k = 0; k < parts; k++) for (l = 0; l < parts; l++) @@ -387,11 +390,11 @@ namespace AMDiS { for (i = 0; i < nBasFcts; i++) { WARNING("not tested after index correction\n"); - (*(basFcts->getD2Phi(i)))(quad->getLambda(iq), D2Phi); + (*(basFcts->getD2Phi(i)))(quad->getLambda(iq), *D2Phi); for (k = 0; k < parts; k++) for (l = 0; l < parts; l++) - D2Tmp[k][l] += localVec[i] * D2Phi[k][l]; + D2Tmp[k][l] += localVec[i] * (*D2Phi)[k][l]; } for (i = 0; i < dow; i++) diff --git a/AMDiS/src/DOFVector.h b/AMDiS/src/DOFVector.h index 3a53bf06079145177cd868d5510a374c821ec62a..aad09fe7938cd84848bdc34b4b261a6806bb2a4d 100644 --- a/AMDiS/src/DOFVector.h +++ b/AMDiS/src/DOFVector.h @@ -228,7 +228,17 @@ namespace AMDiS { * Are used to store temporary local dofs of an element. * Thread safe. */ - std::vector<DegreeOfFreedom* > localIndices; + std::vector<DegreeOfFreedom*> localIndices; + + /** \brief + * Temporarly used in \ref getGrdAtQPs. Thread safe. + */ + std::vector<DimVec<double>*> grdPhis; + + /** \brief + * Temporarly used in \ref getD2AtQPs. Thread safe. + */ + std::vector<DimMat<double>*> D2Phis; }; diff --git a/AMDiS/src/DOFVector.hh b/AMDiS/src/DOFVector.hh index d9b3938f104e433ef1229ef2ec181f4f87549529..5361890c07fc91ce631dd056bbd6676590c7dfcd 100644 --- a/AMDiS/src/DOFVector.hh +++ b/AMDiS/src/DOFVector.hh @@ -25,11 +25,16 @@ namespace AMDiS { boundaryManager(NULL) { nBasFcts = feSpace->getBasisFcts()->getNumber(); + int dim = feSpace->getMesh()->getDim(); localIndices.resize(omp_get_max_threads()); + grdPhis.resize(omp_get_max_threads()); + D2Phis.resize(omp_get_max_threads()); for (int i = 0; i < omp_get_max_threads(); i++) { localIndices[i] = GET_MEMORY(DegreeOfFreedom, this->nBasFcts); + grdPhis[i] = NEW DimVec<double>(dim, DEFAULT_VALUE, 0.0); + D2Phis[i] = NEW DimMat<double>(dim, NO_INIT); } } @@ -38,6 +43,8 @@ namespace AMDiS { { for (int i = 0; i < static_cast<int>(localIndices.size()); i++) { FREE_MEMORY(localIndices[i], DegreeOfFreedom, this->nBasFcts); + DELETE grdPhis[i]; + DELETE D2Phis[i]; } } diff --git a/AMDiS/src/ElInfo.cc b/AMDiS/src/ElInfo.cc index 6095bf018a62dba06496976e758a53b50eb3dd64..aee887f81f94dc17144076d28cdc7bfe23e1a248 100644 --- a/AMDiS/src/ElInfo.cc +++ b/AMDiS/src/ElInfo.cc @@ -29,9 +29,7 @@ namespace AMDiS { neighbour_(mesh_->getDim(), NO_INIT), neighbourCoord_(mesh_->getDim(), NO_INIT), oppVertex_(mesh_->getDim(), NO_INIT), - grdLambda_(mesh_->getDim(), NO_INIT) - //parametric_(false) - + grdLambda_(mesh_->getDim(), NO_INIT) { projection_.set(NULL); @@ -58,7 +56,7 @@ namespace AMDiS { { int dim = l.getSize() - 1; - static WorldVector<double> world[2]; + static WorldVector<double> world[4]; WorldVector<double> *ret = w ? w : &world[omp_get_thread_num()]; double c = l[0]; @@ -106,9 +104,9 @@ namespace AMDiS { for (int i = 0; i < dow; i++) { e1[i] = coords[1][i] - v0[i]; - if(dim > 1) + if (dim > 1) e2[i] = coords[2][i] - v0[i]; - if(dim > 2) + if (dim > 2) e3[i] = coords[3][i] - v0[i]; } @@ -117,22 +115,22 @@ namespace AMDiS { det = coords[1][0] - coords[0][0]; break; case 2: - if(dim == 1) { + if (dim == 1) { det = norm(&e1); } else { - det = e1[0]*e2[1] - e1[1]*e2[0]; + det = e1[0] * e2[1] - e1[1] * e2[0]; } break; case 3: { WorldVector<double> n; - + if (dim > 1) { n[0] = e1[1] * e2[2] - e1[2] * e2[1]; n[1] = e1[2] * e2[0] - e1[0] * e2[2]; n[2] = e1[0] * e2[1] - e1[1] * e2[0]; } - + if (dim == 1) { det = norm(&e1); } else if (dim == 2) { @@ -141,12 +139,12 @@ namespace AMDiS { det = n[0] * e3[0] + n[1] * e3[1] + n[2] * e3[2]; } else ERROR_EXIT("not yet for problem dimension = %d", dim); - break; - } + break; + } default: ERROR_EXIT("not yet for Global::getGeo(WORLD) = %d", dow); } - + return abs(det); } diff --git a/AMDiS/src/ProblemNonLin.cc b/AMDiS/src/ProblemNonLin.cc index 9f28709e00fc8347ee4a5f91f241854c1fc81509..e8e14545778c0527154dfb9ecc1335ca5e3dcd53 100644 --- a/AMDiS/src/ProblemNonLin.cc +++ b/AMDiS/src/ProblemNonLin.cc @@ -159,7 +159,7 @@ namespace AMDiS { nonLinSolver_ = nonLinSolverCreator->create(); nonLinSolver_->setVectorCreator(NEW SystemVector::Creator("temp", componentSpaces_, - numComponents_)); + nComponents)); } @@ -171,13 +171,13 @@ namespace AMDiS { void ProblemNonLinVec::buildAfterCoarsen(AdaptInfo *adaptInfo, Flag) { FUNCNAME("ProblemNonLinVec::buildAfterCoarsen()"); - int i, numMeshes = static_cast<int>(meshes_.size()); + int nMeshes = static_cast<int>(meshes_.size()); - for(i = 0; i < numMeshes; i++) { + for (int i = 0; i < nMeshes; i++) { meshes_[i]->dofCompress(); } - for(i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { MSG("%d DOFs for %s\n", componentSpaces_[i]->getAdmin()->getUsedSize(), componentSpaces_[i]->getName().c_str()); @@ -187,15 +187,15 @@ namespace AMDiS { ElInfo *elInfo; // for all elements ... - for(i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { elInfo = stack.traverseFirst(componentMeshes_[i], -1, Mesh::CALL_LEAF_EL | Mesh::FILL_BOUND | Mesh::FILL_COORDS | Mesh::FILL_DET | Mesh::FILL_GRD_LAMBDA); - while(elInfo) { - if(solution_->getDOFVector(i)->getBoundaryManager()) { + while (elInfo) { + if (solution_->getDOFVector(i)->getBoundaryManager()) { solution_->getDOFVector(i)-> getBoundaryManager()->fillBoundaryConditions(elInfo, solution_->getDOFVector(i)); } diff --git a/AMDiS/src/ProblemNonLin.h b/AMDiS/src/ProblemNonLin.h index 605ac6392bb4d0d96b37905a0b4b58f7febf9bab..56918a6c8f1d7f258cc82c42c2742bbea2882066 100644 --- a/AMDiS/src/ProblemNonLin.h +++ b/AMDiS/src/ProblemNonLin.h @@ -167,7 +167,7 @@ namespace AMDiS { nonLinSolver_(NULL), updater_(NULL) { - u0_.resize(numComponents_); + u0_.resize(nComponents); u0_.set(NULL); }; @@ -178,7 +178,7 @@ namespace AMDiS { int index) { FUNCNAME("ProblemNonLinVec::setU0()"); - TEST_EXIT(index < numComponents_)("invalid index\n"); + TEST_EXIT(index < nComponents)("invalid index\n"); u0_[index] = u0Fct; solution_->getDOFVector(index)->interpol(u0Fct); }; diff --git a/AMDiS/src/ProblemVec.cc b/AMDiS/src/ProblemVec.cc index 6e832de2aee450f3e60259a3d6b9dc98a6cb56c0..a2cf0e2c787c4bc53dd3308a5496468298afbc7d 100644 --- a/AMDiS/src/ProblemVec.cc +++ b/AMDiS/src/ProblemVec.cc @@ -130,7 +130,7 @@ namespace AMDiS { // before timeout of the runqueue. int readSerialization = 0; - ::std::string serializationFilename = ""; + std::string serializationFilename = ""; GET_PARAMETER(0, "argv->rs", &serializationFilename); // If the parameter -rs is set, we do nothing here, because the problem will be @@ -153,24 +153,21 @@ namespace AMDiS { TEST_EXIT(serializationFilename != "")("no serialization file\n"); MSG("Deserialization from file: %s\n", serializationFilename.c_str()); - ::std::ifstream in(serializationFilename.c_str()); + std::ifstream in(serializationFilename.c_str()); deserialize(in); in.close(); } else { + int globalRefinements = 0; + GET_PARAMETER(0, meshes_[0]->getName() + "->global refinements", "%d", + &globalRefinements); + // Initialize the meshes if there is no serialization file. for (int i = 0; i < static_cast<int>(meshes_.size()); i++) { if (initFlag.isSet(INIT_MESH) && meshes_[i] && !(meshes_[i]->isInitialized())) { - meshes_[i]->initialize(); - - // do global refinements - int globalRefinements = 0; - GET_PARAMETER(0, meshes_[0]->getName() + "->global refinements", "%d", - &globalRefinements); - for (int gr = 0; gr < static_cast<int>(meshes_.size()); gr++) { - refinementManager_->globalRefine(meshes_[gr], globalRefinements); - } + meshes_[i]->initialize(); + refinementManager_->globalRefine(meshes_[i], globalRefinements); } } } @@ -183,23 +180,22 @@ namespace AMDiS { { FUNCNAME("ProblemVec::createMesh()"); - componentMeshes_.resize(numComponents_); - ::std::map<int, Mesh*> meshForRefinementSet; + componentMeshes_.resize(nComponents); + std::map<int, Mesh*> meshForRefinementSet; char number[3]; - ::std::string meshName(""); + std::string meshName(""); GET_PARAMETER(0, name_ + "->mesh", &meshName); TEST_EXIT(meshName != "")("no mesh name spezified\n"); int dim = 0; GET_PARAMETER(0, name_ + "->dim", "%d", &dim); TEST_EXIT(dim)("no problem dimension spezified!\n"); - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { sprintf(number, "%d", i); int refSet = -1; GET_PARAMETER(0, name_ + "->refinement set[" + number + "]", "%d", &refSet); if (refSet < 0) { - WARNING("refinement set for component %d not set\n", i); refSet = 0; } if (meshForRefinementSet[refSet] == NULL) { @@ -234,30 +230,30 @@ namespace AMDiS { int degree = 1; char number[3]; - ::std::map< ::std::pair<Mesh*, int>, FiniteElemSpace*> feSpaceMap; + std::map< std::pair<Mesh*, int>, FiniteElemSpace*> feSpaceMap; int dim = -1; GET_PARAMETER(0, name_ + "->dim", "%d", &dim); TEST_EXIT(dim != -1)("no problem dimension spezified!\n"); - componentSpaces_.resize(numComponents_, NULL); + componentSpaces_.resize(nComponents, NULL); - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { sprintf(number, "%d", i); GET_PARAMETER(0, name_ + "->polynomial degree[" + number + "]","%d", °ree); TEST_EXIT(componentSpaces_[i] == NULL)("feSpace already created\n"); - if (feSpaceMap[::std::pair<Mesh*, int>(componentMeshes_[i], degree)] == NULL) { + if (feSpaceMap[std::pair<Mesh*, int>(componentMeshes_[i], degree)] == NULL) { FiniteElemSpace *newFESpace = FiniteElemSpace::provideFESpace(NULL, Lagrange::getLagrange(dim, degree), componentMeshes_[i], name_ + "->feSpace"); - feSpaceMap[::std::pair<Mesh*, int>(componentMeshes_[i], degree)] = newFESpace; + feSpaceMap[std::pair<Mesh*, int>(componentMeshes_[i], degree)] = newFESpace; feSpaces_.push_back(newFESpace); } componentSpaces_[i] = - feSpaceMap[::std::pair<Mesh*, int>(componentMeshes_[i], degree)]; + feSpaceMap[std::pair<Mesh*, int>(componentMeshes_[i], degree)]; } // create dof admin for vertex dofs if neccessary @@ -278,21 +274,21 @@ namespace AMDiS { // === create vectors and system matrix === - systemMatrix_ = NEW Matrix<DOFMatrix*>(numComponents_, numComponents_); + systemMatrix_ = NEW Matrix<DOFMatrix*>(nComponents, nComponents); systemMatrix_->set(NULL); - rhs_ = NEW SystemVector("rhs", componentSpaces_, numComponents_); - solution_ = NEW SystemVector("solution", componentSpaces_, numComponents_); + rhs_ = NEW SystemVector("rhs", componentSpaces_, nComponents); + solution_ = NEW SystemVector("solution", componentSpaces_, nComponents); char number[10]; - ::std::string numberedName; - for (i = 0; i < numComponents_; i++) { + std::string numberedName; + for (i = 0; i < nComponents; i++) { (*systemMatrix_)[i][i] = NEW DOFMatrix(componentSpaces_[i], componentSpaces_[i], "A_ii"); (*systemMatrix_)[i][i]->setCoupleMatrix(false); sprintf(number, "[%d]", i); - numberedName = "rhs" + ::std::string(number); + numberedName = "rhs" + std::string(number); rhs_->setDOFVector(i, NEW DOFVector<double>(componentSpaces_[i], numberedName)); - numberedName = name_ + ::std::string(number); + numberedName = name_ + std::string(number); solution_->setDOFVector(i, NEW DOFVector<double>(componentSpaces_[i], numberedName)); solution_->getDOFVector(i)->refineInterpol(true); @@ -309,7 +305,7 @@ namespace AMDiS { FUNCNAME("ProblemVec::createSolver()"); // === create solver === - ::std::string solverType("no"); + std::string solverType("no"); GET_PARAMETER(0, name_ + "->solver", &solverType); OEMSolverCreator<SystemVector> *solverCreator = dynamic_cast<OEMSolverCreator<SystemVector>*>( @@ -322,10 +318,10 @@ namespace AMDiS { solver_->initParameters(); // === create preconditioners === - ::std::string preconType("no"); + std::string preconType("no"); PreconditionerScal *scalPrecon; - PreconditionerVec *vecPrecon = NEW PreconditionerVec(numComponents_); + PreconditionerVec *vecPrecon = NEW PreconditionerVec(nComponents); GET_PARAMETER(0, name_ + "->solver->left precon", &preconType); CreatorInterface<PreconditionerScal> *preconCreator = @@ -337,12 +333,12 @@ namespace AMDiS { dynamic_cast<PreconditionerScalCreator*>(preconCreator)-> setName(name_ + "->solver->left precon"); - for(i = 0; i < numComponents_; i++) { + for(i = 0; i < nComponents; i++) { dynamic_cast<PreconditionerScalCreator*>(preconCreator)-> - setSizeAndRow(numComponents_, i); + setSizeAndRow(nComponents, i); scalPrecon = preconCreator->create(); - for(j = 0; j < numComponents_; j++) { + for(j = 0; j < nComponents; j++) { scalPrecon->setMatrix(&(*systemMatrix_)[i][j], j); } vecPrecon->setScalarPrecon(i, scalPrecon); @@ -351,7 +347,7 @@ namespace AMDiS { } - vecPrecon = NEW PreconditionerVec(numComponents_); + vecPrecon = NEW PreconditionerVec(nComponents); GET_PARAMETER(0, name_ + "->solver->right precon", &preconType); preconCreator = @@ -362,12 +358,12 @@ namespace AMDiS { setName(name_ + "->solver->left precon"); - for(i = 0; i < numComponents_; i++) { + for(i = 0; i < nComponents; i++) { dynamic_cast<PreconditionerScalCreator*>(preconCreator)-> - setSizeAndRow(numComponents_, i); + setSizeAndRow(nComponents, i); scalPrecon = preconCreator->create(); - for(j = 0; j < numComponents_; j++) { + for(j = 0; j < nComponents; j++) { scalPrecon->setMatrix(&(*systemMatrix_)[i][j], j); } vecPrecon->setScalarPrecon(i, scalPrecon); @@ -379,7 +375,7 @@ namespace AMDiS { // === create vector creator === solver_->setVectorCreator(NEW SystemVector::Creator("temp", componentSpaces_, - numComponents_)); + nComponents)); } void ProblemVec::createEstimator() @@ -395,15 +391,15 @@ namespace AMDiS { } char number[3]; - ::std::string estName; + std::string estName; - for(i = 0; i < numComponents_; i++) { + for(i = 0; i < nComponents; i++) { TEST_EXIT(estimator_[i] == NULL)("estimator already created\n"); sprintf(number, "%d", i); - estName = name_ + "->estimator[" + ::std::string(number) + "]"; + estName = name_ + "->estimator[" + std::string(number) + "]"; // === create estimator === - ::std::string estimatorType("no"); + std::string estimatorType("no"); GET_PARAMETER(0, estName, &estimatorType); EstimatorCreator *estimatorCreator = dynamic_cast<EstimatorCreator*>( @@ -420,7 +416,7 @@ namespace AMDiS { if(estimator_[i]) { - for(j=0; j < numComponents_; j++) { + for(j=0; j < nComponents; j++) { estimator_[i]->addSystem((*systemMatrix_)[i][j], solution_->getDOFVector(j), rhs_->getDOFVector(j)); @@ -433,13 +429,13 @@ namespace AMDiS { { FUNCNAME("ProblemVec::createMarker()"); - ::std::string numberedName; + std::string numberedName; char number[10]; int numMarkersCreated = 0; - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { sprintf(number, "[%d]", i); - numberedName = name_ + "->marker" + ::std::string(number); + numberedName = name_ + "->marker" + std::string(number); marker_[i] = Marker::createMarker(numberedName, i); if (marker_[i]) { numMarkersCreated++; @@ -455,14 +451,14 @@ namespace AMDiS { // Create one filewriter for all components of the problem - ::std::string numberedName = name_ + "->output"; - ::std::string filename = ""; + std::string numberedName = name_ + "->output"; + std::string filename = ""; GET_PARAMETER(0, numberedName + "->filename", &filename); if (filename != "") { - ::std::vector< DOFVector<double>* > solutionList(numComponents_); + std::vector< DOFVector<double>* > solutionList(nComponents); - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { TEST_EXIT(componentMeshes_[0] == componentMeshes_[i]) ("All Meshes have to be equal to write a vector file.\n"); @@ -477,9 +473,9 @@ namespace AMDiS { // Create own filewriters for each components of the problem char number[10]; - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { sprintf(number, "[%d]", i); - numberedName = name_ + "->output" + ::std::string(number); + numberedName = name_ + "->output" + std::string(number); filename = ""; GET_PARAMETER(0, numberedName + "->filename", &filename); @@ -552,7 +548,7 @@ namespace AMDiS { double wtime = omp_get_wtime(); #endif - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { Estimator *scalEstimator = estimator_[i]; if (scalEstimator) { @@ -587,7 +583,7 @@ namespace AMDiS { allowFirstRefinement(); Flag markFlag = 0; - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { if (marker_[i]) { markFlag |= marker_[i]->markMesh(adaptInfo, componentMeshes_[i]); } else { @@ -631,12 +627,12 @@ namespace AMDiS { FUNCNAME("ProblemVec::oneIteration()"); if (allowFirstRef_) { - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { adaptInfo->allowRefinement(true, i); } allowFirstRef_ = false; } else { - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { if (adaptInfo->spaceToleranceReached(i)) { adaptInfo->allowRefinement(false, i); } else { @@ -677,13 +673,13 @@ namespace AMDiS { } - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { MSG("%d DOFs for %s\n", componentSpaces_[i]->getAdmin()->getUsedSize(), componentSpaces_[i]->getName().c_str()); rhs_->getDOFVector(i)->set(0.0); - for (int j = 0; j < numComponents_; j++) { + for (int j = 0; j < nComponents; j++) { if ((*systemMatrix_)[i][j]) { // The matrix should not be deleted, if it was assembled before // and it is marked to be assembled only once. @@ -698,10 +694,10 @@ namespace AMDiS { #ifdef _OPENMP #pragma omp parallel for #endif - for (i = 0; i < numComponents_; i++) { + for (i = 0; i < nComponents; i++) { const BasisFunction *basisFcts = componentSpaces_[i]->getBasisFcts(); - for (int j = 0; j < numComponents_; j++) { + for (int j = 0; j < nComponents; j++) { // Only if this variable is true, the current matrix will be assembled. bool assembleMatrix = true; // The DOFMatrix which should be assembled (or not, if assembleMatrix @@ -739,30 +735,29 @@ namespace AMDiS { TraverseStack stack; ElInfo *elInfo = stack.traverseFirst(componentMeshes_[i], -1, assembleFlag); - + while (elInfo) { if (useGetBound_) { basisFcts->getBound(elInfo, bound); } - + if (assembleMatrix) { matrix->assemble(1.0, elInfo, bound); - + if (matrix->getBoundaryManager()) { matrix-> getBoundaryManager()-> - fillBoundaryConditions(elInfo, matrix); + fillBoundaryConditions(elInfo, matrix); } } - + if (i == j) { rhs_->getDOFVector(i)->assemble(1.0, elInfo, bound); } elInfo = stack.traverseNext(elInfo); } - - + if (assembleMatrix && matrix->getBoundaryManager()) matrix->getBoundaryManager()->exitMatrix(matrix); @@ -856,7 +851,7 @@ namespace AMDiS { return false; } - void ProblemVec::interpolInitialSolution(::std::vector<AbstractFunction<double, WorldVector<double> >*> *fct) + void ProblemVec::interpolInitialSolution(std::vector<AbstractFunction<double, WorldVector<double> >*> *fct) { FUNCNAME("ProblemVec::interpolInitialSolution()"); @@ -901,7 +896,7 @@ namespace AMDiS { DirichletBC *dirichlet = new DirichletBC(type, b, componentSpaces_[system]); - for (int i = 0; i < numComponents_; i++) { + for (int i = 0; i < nComponents; i++) { if (systemMatrix_ && (*systemMatrix_)[system][i]) { (*systemMatrix_)[system][i]->getBoundaryManager()->addBoundaryCondition(dirichlet); } @@ -961,7 +956,7 @@ namespace AMDiS { addBoundaryCondition(periodic); } - void ProblemVec::writeResidualMesh(AdaptInfo *adaptInfo, const ::std::string name) + void ProblemVec::writeResidualMesh(AdaptInfo *adaptInfo, const std::string name) { FUNCNAME("ProblemVec::writeResidualMesh()"); @@ -988,7 +983,7 @@ namespace AMDiS { fw.writeFiles(adaptInfo, true); } - void ProblemVec::serialize(::std::ostream &out) + void ProblemVec::serialize(std::ostream &out) { FUNCNAME("ProblemVec::serialize()"); @@ -1001,7 +996,7 @@ namespace AMDiS { solution_->serialize(out); } - void ProblemVec::deserialize(::std::istream &in) + void ProblemVec::deserialize(std::istream &in) { FUNCNAME("ProblemVec::deserialize()"); diff --git a/AMDiS/src/ProblemVec.h b/AMDiS/src/ProblemVec.h index 97104936bf7bd49808fd93dbcdeb9f556675b5e2..d4f99ff8ef66e0da3e1afe4385cd65b5531b4346 100644 --- a/AMDiS/src/ProblemVec.h +++ b/AMDiS/src/ProblemVec.h @@ -61,7 +61,7 @@ namespace AMDiS { ProblemIterationInterface *problemIteration = NULL) : StandardProblemIteration(this), name_(name), - numComponents_(-1), + nComponents(-1), solver_(NULL), solution_(NULL), rhs_(NULL), @@ -73,18 +73,18 @@ namespace AMDiS { info_(10), allowFirstRef_(false) { - GET_PARAMETER(0, name_ + "->components", "%d", &numComponents_); - TEST_EXIT(numComponents_ > 0)("components not set!\n"); - - estimator_.resize(numComponents_, NULL); - marker_.resize(numComponents_, NULL); - - assembleMatrixOnlyOnce_.resize(numComponents_); - assembledMatrix_.resize(numComponents_); - for (int i = 0; i < numComponents_; i++) { - assembleMatrixOnlyOnce_[i].resize(numComponents_); - assembledMatrix_[i].resize(numComponents_); - for (int j = 0; j < numComponents_; j++) { + GET_PARAMETER(0, name_ + "->components", "%d", &nComponents); + TEST_EXIT(nComponents > 0)("components not set!\n"); + + estimator_.resize(nComponents, NULL); + marker_.resize(nComponents, NULL); + + assembleMatrixOnlyOnce_.resize(nComponents); + assembledMatrix_.resize(nComponents); + for (int i = 0; i < nComponents; i++) { + assembleMatrixOnlyOnce_[i].resize(nComponents); + assembledMatrix_[i].resize(nComponents); + for (int j = 0; j < nComponents; j++) { assembleMatrixOnlyOnce_[i][j] = false; assembledMatrix_[i][j] = false; } @@ -210,7 +210,7 @@ namespace AMDiS { * Implementation of ProblemStatBase::getNumComponents() */ virtual int getNumComponents() { - return numComponents_; + return nComponents; }; /** \brief @@ -516,7 +516,7 @@ namespace AMDiS { /** \brief * number of problem components */ - int numComponents_; + int nComponents; /** \brief * fe spaces of this problem.