Index: Include/Sledge++/umOutput.h =================================================================== --- Include/Sledge++/umOutput.h (revision 1365) +++ Include/Sledge++/umOutput.h (working copy) @@ -52,16 +52,17 @@ umIVec &DomMask, bool appendZone=false); void umOutputVTK(umDOMAINS *domains, const char* fileprefix, - const umDVec& FData, int porderShift=0); + const umDVec& FData, int porderShift=0, const char **names=0); void umOutputVTK(umDOMAINS *domains, const char* fileprefix, - const umDMat& FData, int porderShift=0); + const umDMat& FData, int porderShift=0, const char **names=0); void umOutputVTK(umDOMAINS *domains, const char* fileprefix, - const umDMat& FData, umIVec &NqVec); + const umDMat& FData, umIVec &NqVec, const char **names=0); void umOutputVTK(umDOMAINS *domains, const char* fileprefix, - const umDMat& FData, umIVec &NqVec, umIVec &DomMask); + const umDMat& FData, umIVec &NqVec, umIVec &DomMask, + const char **names=0); #endif // SLEDGE__umOutput_H__INCLUDED Index: Include/Sledge++/umMat_ROW.h =================================================================== --- Include/Sledge++/umMat_ROW.h (revision 1365) +++ Include/Sledge++/umMat_ROW.h (working copy) @@ -79,7 +79,7 @@ //------------------------------------------------------- - explicit umMat_ROW(const umMat_ROW &B, OBJ_mode md=OBJ_real, const char* sz="rmat") + umMat_ROW(const umMat_ROW &B, OBJ_mode md=OBJ_real, const char* sz="rmat") //------------------------------------------------------- : Vector(sz), m_M(0), m_N(0), m_MN(0), row_(0), rowm1_(0), @@ -860,7 +860,7 @@ return (*tmp); } - void set_row(const int i, const double &x) + void set_row(const int i, const T &x) { // Fill row i with a value CheckIdx_Row_0(i); @@ -889,7 +889,7 @@ assert(vec.size() >= m_N); // sufficient values? // unroll loop along row-major arrays - const double* p = vec.data(); + const T* p = vec.data(); int Nmod4 = m_N & 3; int N4 = m_N - Nmod4; int j=0; @@ -912,7 +912,7 @@ } - void set_col(const int j, const double &x) + void set_col(const int j, const T &x) { // Fill col j with a value CheckIdx_Col_0(j); @@ -1009,7 +1009,7 @@ /// /// scale all elements of row i by a scalar - void scale_row(const int i, const double &x) + void scale_row(const int i, const T &x) { CheckIdx_Row_0(i); @@ -1088,9 +1088,9 @@ { assert(ok()); - T maxval = this->ZERO; + double maxval = this->ZERO; for (int i=0; iZERO; + double sum = this->ZERO; for (int j=0; jsumsquares(); - return sqrt(ss); + return sqrt(this->sumsquares()); } Index: Include/Sledge++/umMat_COL.h =================================================================== --- Include/Sledge++/umMat_COL.h (revision 1365) +++ Include/Sledge++/umMat_COL.h (working copy) @@ -80,7 +80,7 @@ //------------------------------------------------------- - explicit umMat_COL(const umMat_COL &B, OBJ_mode md=OBJ_real, const char* sz="mat") + umMat_COL(const umMat_COL &B, OBJ_mode md=OBJ_real, const char* sz="mat") //------------------------------------------------------- : Vector(sz), m_M(0), m_N(0), m_MN(0), col_(0), m_major(MajorCOL), @@ -916,7 +916,7 @@ return (*tmp); } - void set_row(const int i, const double &x) + void set_row(const int i, const T &x) { // Fill row i with a value CheckIdx_Row_1(i); @@ -937,7 +937,7 @@ } } - void set_col(const int j, const double &x) + void set_col(const int j, const T &x) { // Fill col j with a value CheckIdx_Col_1(j); @@ -1072,7 +1072,7 @@ /// /// scale all elements of column j by a scalar - void scale_col(const int j, const double &x) + void scale_col(const int j, const T &x) { CheckIdx_Col_1(j); Index: Include/Sledge++/umVec_Type.h =================================================================== --- Include/Sledge++/umVec_Type.h (revision 1365) +++ Include/Sledge++/umVec_Type.h (working copy) @@ -113,7 +113,7 @@ //------------------------------------------------------- - explicit Vector(const Vector &B, OBJ_mode md=OBJ_real, const char* sz="vec") + Vector(const Vector &B, OBJ_mode md=OBJ_real, const char* sz="vec") //------------------------------------------------------- : v_(0), vm1_(0), m_Len(0), ZERO(0), ONE(1), m_name(sz), m_EqTol(0.0), m_borrowed(false), @@ -904,7 +904,7 @@ } - double d_dot(const Vector &B) const + T d_dot(const Vector &B) const { if (m_Len<1) return ZERO; assert(B.size() >= m_Len); @@ -1184,6 +1184,7 @@ } } + void mult_val(const T &x) { // handle special cases @@ -1259,7 +1260,7 @@ // element-by-element --> A .+ B assert(B.size() >= m_Len); // B may be longer than A - const double* p = B.data(); // operate on the base array + const T* p = B.data(); // operate on the base array int Nmod4 = m_Len & 3; int N4 = m_Len - Nmod4; Index: Include/Sledge++/umMat_DIAG.h =================================================================== --- Include/Sledge++/umMat_DIAG.h (revision 1365) +++ Include/Sledge++/umMat_DIAG.h (working copy) @@ -60,7 +60,7 @@ {} - explicit umMat_DIAG(const umMat_DIAG &B, OBJ_mode md=OBJ_real, const char* sz="diag") + umMat_DIAG(const umMat_DIAG &B, OBJ_mode md=OBJ_real, const char* sz="diag") : Vector(sz), m_M(0), m_N(0), m_MN(0), m_zero(0), m_D(B.min_mn()) Index: Doxyfile =================================================================== --- Doxyfile (revision 1365) +++ Doxyfile (working copy) @@ -76,7 +76,7 @@ # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. -INLINE_INHERITED_MEMB = NO +INLINE_INHERITED_MEMB = YES # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set @@ -443,12 +443,12 @@ # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. -INLINE_SOURCES = NO +INLINE_SOURCES = YES # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code @@ -616,7 +616,7 @@ # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. -GENERATE_LATEX = YES +GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be Index: Src/Sledge++/AMR/umAMRMesh_3.cpp =================================================================== --- Src/Sledge++/AMR/umAMRMesh_3.cpp (revision 1365) +++ Src/Sledge++/AMR/umAMRMesh_3.cpp (working copy) @@ -38,7 +38,7 @@ // nodes, connectivity, materials, face boundaries. bool bResult=true, bCoord3D=false, bElement3D=false, bTET=false; - int i=0, k=0, e=0, iMat=0, Nfaces=0; + int e=0, iMat=0, Nfaces=0; int v1=0, v2=0, v3=0, v4=0; // Note: a mesh may have 3d coords, while still being @@ -334,7 +334,6 @@ umElmBase& Rfe = (*Pfe); std::string name; // indicator name - int BFcount=0; //int Ncode = (3==Ndim) ? 6 : 3; int face_bind=0; Index: Src/Sledge++/InputOutput/umOutput.cpp =================================================================== --- Src/Sledge++/InputOutput/umOutput.cpp (revision 1365) +++ Src/Sledge++/InputOutput/umOutput.cpp (working copy) @@ -61,7 +61,7 @@ umIVec startrow(sampleNq); // NBN: VC loop control vars visible outside loop. - int sk=0, i=0, j=0; + int sk=0, i=0; for(sk=0, i=0; iget_Ndomains(), 1); - umOutputVTK(domains, fileprefix, FData, NqVec, DomMask); + umOutputVTK(domains, fileprefix, FData, NqVec, DomMask, names); } @@ -857,7 +860,8 @@ const char *fileprefix, const umDMat &FData, umIVec &NqVec, - umIVec &DomMask + umIVec &DomMask, + const char **names ) //--------------------------------------------------------- { @@ -1039,7 +1043,7 @@ } } else { - umERROR("umOutputMATLAB()", "Element type not supported %d ", um->Netype); + umERROR("umOutputVTK()", "Element type not supported %d ", um->Netype); return; } @@ -1131,7 +1135,10 @@ // over the set of domain objects, extracting part // of each field from each sub-domain. - fprintf(fp, "\nSCALARS field%d double 1", fld); + if (names) + fprintf(fp, "\nSCALARS %s double 1", names[fld-1]); + else + fprintf(fp, "\nSCALARS field%d double 1", fld); fprintf(fp, "\nLOOKUP_TABLE default"); for (int dom=0, rowskip=0; domname()); } - fprintf(fp, ", order, dom, elmt\n"); + fprintf(fp, ", \"order\", \"dom\", \"elmt\"\n"); for(int dom=0, sk=1; domNdomains; ++dom){ USEMe2 *um1 = this->get_domain(dom);