diff --git a/AMDiS/src/ArhReader.cc b/AMDiS/src/ArhReader.cc index 2249c29de49d1a0afdc2e8032ad70ab162a1d678..912cd865c04082cc57b69bf4024925831ec89c63 100644 --- a/AMDiS/src/ArhReader.cc +++ b/AMDiS/src/ArhReader.cc @@ -46,7 +46,7 @@ namespace AMDiS { file.read(reinterpret_cast<char*>(&nStructureCodes), 4); file.read(reinterpret_cast<char*>(&codeSize), 4); - vector<unsigned long> structureCode(nStructureCodes); + vector<unsigned long int> structureCode(nStructureCodes); file.read(reinterpret_cast<char*>(&(structureCode[0])), 8 * nStructureCodes); MeshStructure elementStructure; diff --git a/AMDiS/src/Debug.cc b/AMDiS/src/Debug.cc index 645bcf775ea0e5c6d0197599211471a05e7103c2..ed2338e5d3893f120cc444603c8feb82ec296f8b 100644 --- a/AMDiS/src/Debug.cc +++ b/AMDiS/src/Debug.cc @@ -557,6 +557,28 @@ namespace AMDiS { } + void exportDofVectorByCoords(const DOFVector<double>* vec, + std::string filename) + { + DOFVector<WorldVector<double> > coords(vec->getFeSpace(), "dofCoords"); + vec->getFeSpace()->getMesh()->getDofIndexCoords(vec->getFeSpace(), coords); + int dim = vec->getFeSpace()->getMesh()->getDim(); + + std::ofstream file; + file.open(filename.c_str()); + file << vec->getUsedSize() << "\n"; + + DOFIterator<WorldVector<double> > it(&coords, USED_DOFS); + for (it.reset(); !it.end(); ++it) { + for (int i = 0; i < dim; i++) + file << (*it)[i] << " "; + file << (*vec)[it.getDOFIndex()] << "\n"; + } + + file.close(); + } + + void createSortedDofs(Mesh *mesh, ElementIdxToDofs &elMap) { FUNCNAME("debug::dbgCreateElementMap()"); diff --git a/AMDiS/src/Debug.h b/AMDiS/src/Debug.h index 6c383162274044e964ade153808de0592b2b9e53..3112e75eac549dd8e06d8026f0e61cb092ddaf0e 100644 --- a/AMDiS/src/Debug.h +++ b/AMDiS/src/Debug.h @@ -141,6 +141,9 @@ namespace AMDiS { int getLocalNeighbourIndex(Mesh *mesh, int elIndex, int neighIndex); + void exportDofVectorByCoords(const DOFVector<double>* vec, + std::string filename); + /** \brief * Traverse a mesh and store for each element all its vertex DOFs in local sorted * order (by values). diff --git a/AMDiS/src/SecondOrderTerm.cc b/AMDiS/src/SecondOrderTerm.cc index 85ce9e7c9397bfbe00a3a4672970c7fcf54c4630..e9fc26a80be888bf9c7ee7e051d9f003baade388 100644 --- a/AMDiS/src/SecondOrderTerm.cc +++ b/AMDiS/src/SecondOrderTerm.cc @@ -194,7 +194,7 @@ namespace AMDiS { { const DimVec<WorldVector<double> > &grdLambda = elInfo->getGrdLambda(); for (int iq = 0; iq < nPoints; iq++) - l1lt(grdLambda, *(LALt[iq]), (*f)(vecAtQPs[iq])); + l1lt(grdLambda, *(LALt[iq]), (*f)(vecAtQPs[iq])); } void VecAtQP_SOT::eval(int nPoints, diff --git a/AMDiS/src/ZeroOrderAssembler.cc b/AMDiS/src/ZeroOrderAssembler.cc index f8032eb7e36433a3579a28f1d55b7da782bf518c..845ca342012bc048321150e93bf79ff1b025176f 100644 --- a/AMDiS/src/ZeroOrderAssembler.cc +++ b/AMDiS/src/ZeroOrderAssembler.cc @@ -68,9 +68,9 @@ namespace AMDiS { newAssembler = new StandardZOA(op, assembler, quad); } else { if (pwConst) - newAssembler = new PrecalcZOA(op, assembler, quad); + newAssembler = new PrecalcZOA(op, assembler, quad); else - newAssembler = new FastQuadZOA(op, assembler, quad); + newAssembler = new FastQuadZOA(op, assembler, quad); } subAssemblers->push_back(newAssembler); @@ -130,7 +130,7 @@ namespace AMDiS { for (int i = 0; i < nRow; i++) { double psival = (*(psi->getPhi(i)))(quadrature->getLambda(iq)); for (int j = 0; j < nCol; j++) - mat[i][j] += quadrature->getWeight(iq) * c[iq] * psival * phival[j]; + mat[i][j] += quadrature->getWeight(iq) * c[iq] * psival * phival[j]; } } }