diff --git a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C index 3394b928b22f3079e0f3470d1ffabdf68b89af16..c04d87bc91c552a60b994134acac8aaf676993f9 100644 --- a/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C +++ b/applications/utilities/mesh/manipulation/renumberMesh/renumberMesh.C @@ -430,6 +430,59 @@ int main(int argc, char *argv[]) << "Band before renumbering: " << returnReduce(band, maxOp<label>()) << nl << endl; + + // Read parallel reconstruct maps + labelIOList cellProcAddressing + ( + IOobject + ( + "cellProcAddressing", + mesh.facesInstance(), + polyMesh::meshSubDir, + mesh, + IOobject::READ_IF_PRESENT + ), + labelList(0) + ); + + labelIOList faceProcAddressing + ( + IOobject + ( + "faceProcAddressing", + mesh.facesInstance(), + polyMesh::meshSubDir, + mesh, + IOobject::READ_IF_PRESENT + ), + labelList(0) + ); + labelIOList pointProcAddressing + ( + IOobject + ( + "pointProcAddressing", + mesh.pointsInstance(), + polyMesh::meshSubDir, + mesh, + IOobject::READ_IF_PRESENT + ), + labelList(0) + ); + labelIOList boundaryProcAddressing + ( + IOobject + ( + "boundaryProcAddressing", + mesh.pointsInstance(), + polyMesh::meshSubDir, + mesh, + IOobject::READ_IF_PRESENT + ), + labelList(0) + ); + + // Read objects in time directory IOobjectList objects(mesh, runTime.timeName()); @@ -579,6 +632,39 @@ int main(int argc, char *argv[]) // Update fields mesh.updateMesh(map); + // Update proc maps + if (cellProcAddressing.headerOk()) + { + Info<< "Renumbering processor cell decomposition map " + << cellProcAddressing.name() << endl; + + cellProcAddressing = labelList + ( + UIndirectList<label>(cellProcAddressing, map().cellMap()) + ); + } + if (faceProcAddressing.headerOk()) + { + Info<< "Renumbering processor face decomposition map " + << faceProcAddressing.name() << endl; + + faceProcAddressing = labelList + ( + UIndirectList<label>(faceProcAddressing, map().faceMap()) + ); + } + if (pointProcAddressing.headerOk()) + { + Info<< "Renumbering processor point decomposition map " + << pointProcAddressing.name() << endl; + + pointProcAddressing = labelList + ( + UIndirectList<label>(pointProcAddressing, map().pointMap()) + ); + } + + // Move mesh (since morphing might not do this) if (map().hasMotionPoints()) { @@ -652,7 +738,8 @@ int main(int argc, char *argv[]) { mesh.setInstance(oldInstance); } - Info<< "Writing mesh to " << runTime.timeName() << endl; + + Info<< "Writing mesh to " << mesh.facesInstance() << endl; mesh.write(); diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C index a9e39afbb7e179816c81cf6755a408d3d8c90675..0f0ea82066957c9a9ee44232811944d8dfef2f8f 100644 --- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C +++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamMeshVolume.C @@ -31,6 +31,7 @@ License #include "cellModeller.H" #include "vtkOpenFOAMPoints.H" #include "Swap.H" +#include "longLong.H" // VTK includes #include "vtkCellArray.h" diff --git a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H index c8e9dd2925d1da4d54f0c4b636657c5a2d8f8a7d..027b8fd142357afcc0ec8e07fb2e706c9f3a424b 100644 --- a/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H +++ b/applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamPointFields.H @@ -195,7 +195,15 @@ void Foam::vtkPV3Foam::convertPointField // Note: using the name of the original volField // not the name generated by the interpolation "volPointInterpolate(<name>)" - pointData->SetName(tf.name().c_str()); + + if (&tf != &GeometricField<Type, fvPatchField, volMesh>::null()) + { + pointData->SetName(tf.name().c_str()); + } + else + { + pointData->SetName(ptf.name().c_str()); + } if (debug) { diff --git a/bin/foamEtcFile b/bin/foamEtcFile index d661e33f6f9ebb7aca7995e1a2ecec3cd7c85b4c..1af5ae9bdd0045a6b4561c2707f3748cb4c9424a 100755 --- a/bin/foamEtcFile +++ b/bin/foamEtcFile @@ -82,6 +82,9 @@ mode=ugo prefix="$WM_PROJECT_INST_DIR" version="$WM_PROJECT_VERSION" +# default naming convention is "OpenFOAM-<VERSION>" +projectNamePrefix="${WM_PROJECT:-OpenFOAM}-" + unset listOpt quietOpt # parse options @@ -132,6 +135,23 @@ do esac done + +# +# handle standard and debian naming convention +# +case "$version" in +OpenFOAM-*) # standard naming convention OpenFOAM-<VERSION> + projectNamePrefix="OpenFOAM-" + version="${version##OpenFOAM-}" + ;; + +openfoam[0-9]*) # debian naming convention 'openfoam<VERSION>' + projectNamePrefix="openfoam" + version="${version##openfoam}" + ;; +esac + + # Save the essential bits of information: nArgs=$# fileName="$1" @@ -154,7 +174,7 @@ esac case "$mode" in *o*) # other (shipped) - dirList="$dirList $prefix/${WM_PROJECT:-OpenFOAM}-$version/etc" + dirList="$dirList $prefix/$projectNamePrefix$version/etc" ;; esac set -- $dirList diff --git a/bin/foamExec b/bin/foamExec index c5106391d022dae9686e453111997a1852e0682f..05cf253938823566b9f00fcd551249c0c0c569ee 100755 --- a/bin/foamExec +++ b/bin/foamExec @@ -35,6 +35,10 @@ # mpirun -np <nProcs> \ # foamExec -v <foamVersion> <foamCommand> ... -parallel # +# Note: - not consistent with foamEtcFiles - does not search 'site' +# directories +# - version switch -v will not work with the debian naming +# openfoamXXX #------------------------------------------------------------------------------ usage() { while [ "$#" -ge 1 ]; do echo "$1"; shift; done @@ -54,7 +58,7 @@ USAGE } # This script must exist in <foamInstall>/OpenFOAM-<VERSION>/bin/ -# or <foamInstall>/openfoamVERSION/bin/ +# or <foamInstall>/openfoam<VERSION>/bin/ (for the debian version) # # the bindir: @@ -71,12 +75,31 @@ foamInstall="$prefixDir" # the name used for the project directory projectDirName="${projectDir##*/}" -# version from OpenFOAM-VERSION (normal) or openfoamVERSION (debian) -version=$(echo $projectDirName | sed -e 's@^openfoam-*@@i') +# +# handle standard and debian naming convention +# +case "$projectDirName" in +OpenFOAM-*) # standard naming convention OpenFOAM-<VERSION> + projectNamePrefix="OpenFOAM-" + version="${projectDirName##OpenFOAM-}" + versionNum=$version + ;; + +openfoam[0-9]*) # debian naming convention 'openfoam<VERSION>' + projectNamePrefix="openfoam" + versionNum="${projectDirName##openfoam}" + version=$WM_PROJECT_DIR + ;; +*) + echo "Error : unknown/unsupported naming convention" + exit 1 + ;; +esac + # debugging: # echo "Installed locations:" -# for i in projectDir prefixDir foamInstall projectDirName version +# for i in projectDir prefixDir foamInstall projectDirName version versionNum # do # eval echo "$i=\$$i" # done @@ -92,6 +115,7 @@ do -v | version) [ "$#" -ge 2 ] || usage "'$1' option requires an argument" version=$2 + versionNum=$version shift 2 ;; --) diff --git a/etc/apps/paraview3/bashrc b/etc/apps/paraview3/bashrc index 0ff28f0cafc405087cec8f3fa382bcd9374c5c94..51965e47d61340249d1936d48da21787bb7554e9 100644 --- a/etc/apps/paraview3/bashrc +++ b/etc/apps/paraview3/bashrc @@ -51,7 +51,7 @@ done # set VERSION and MAJOR (version) variables if not already set -[ -n "$ParaView_VERSION" ] || ParaView_VERSION=3.6.1 +[ -n "$ParaView_VERSION" ] || ParaView_VERSION=3.8.0 [ -n "$ParaView_MAJOR" ] || ParaView_MAJOR=unknown # if needed, set MAJOR version to correspond to VERSION @@ -75,6 +75,7 @@ export ParaView_DIR=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview- if [ -r $ParaView_DIR -o -r $paraviewInstDir ] then export PATH=$ParaView_DIR/bin:$PATH + export LD_LIBRARY_PATH=$ParaView_DIR/lib/paraview-$ParaView_MAJOR:$LD_LIBRARY_PATH export PV_PLUGIN_PATH=$FOAM_LIBBIN/paraview-$ParaView_MAJOR # add in python libraries if required diff --git a/etc/apps/paraview3/cshrc b/etc/apps/paraview3/cshrc index ddb4502c275748d6d29752bd0220190ff3629eec..a69608c9d32a55a88fc4565a2479ec725438d696 100644 --- a/etc/apps/paraview3/cshrc +++ b/etc/apps/paraview3/cshrc @@ -49,7 +49,7 @@ foreach cmake ( cmake-2.8.1 cmake-2.8.0 cmake-2.6.4 ) end # set VERSION and MAJOR (version) variables if not already set -if ( ! $?ParaView_VERSION ) setenv ParaView_VERSION 3.6.1 +if ( ! $?ParaView_VERSION ) setenv ParaView_VERSION 3.8.0 if ( ! $?ParaView_MAJOR ) setenv ParaView_MAJOR unknown # if needed, set MAJOR version to correspond to VERSION @@ -73,6 +73,7 @@ setenv ParaView_DIR $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/paraview- # set paths if binaries or source are present if ( -r $ParaView_DIR || -r $paraviewInstDir ) then setenv PATH ${ParaView_DIR}/bin:${PATH} + setenv LD_LIBRARY_PATH "${ParaView_DIR}/lib/paraview-${ParaView_MAJOR}:${LD_LIBRARY_PATH}" setenv PV_PLUGIN_PATH $FOAM_LIBBIN/paraview-${ParaView_MAJOR} # add in python libraries if required diff --git a/etc/bashrc b/etc/bashrc index d7dae2ae46398df14b5bc7a5c101d7ae604e0661..ad866d049b7d1f4731b2b14ba013244646eb342a 100644 --- a/etc/bashrc +++ b/etc/bashrc @@ -32,7 +32,7 @@ #------------------------------------------------------------------------------ export WM_PROJECT=OpenFOAM -[ -z "$WM_PROJECT_VERSION" ] && export WM_PROJECT_VERSION=1.6 +[ -z "$WM_PROJECT_VERSION" ] && export WM_PROJECT_VERSION=dev ################################################################################ # USER EDITABLE PART. Note changes made here may be lost with the next upgrade @@ -131,7 +131,7 @@ unset WM_COMPILER_ARCH WM_COMPILER_LIB_ARCH # WM_COMPILE_OPTION = Opt | Debug | Prof : ${WM_COMPILE_OPTION:=Opt}; export WM_COMPILE_OPTION -# WM_MPLIB = | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI +# WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI : ${WM_MPLIB:=OPENMPI}; export WM_MPLIB diff --git a/etc/cshrc b/etc/cshrc index 1ef3458f8ebc35c995d6f4524f8a06cb9ebb587d..9f55d62ab625334f9d5a93dda715b9b6631d0b99 100644 --- a/etc/cshrc +++ b/etc/cshrc @@ -31,7 +31,7 @@ #------------------------------------------------------------------------------ setenv WM_PROJECT OpenFOAM -if ( ! $?WM_PROJECT_VERSION ) setenv WM_PROJECT_VERSION 1.6 +if ( ! $?WM_PROJECT_VERSION ) setenv WM_PROJECT_VERSION dev ################################################################################ # USER EDITABLE PART. Note changes made here may be lost with the next upgrade @@ -119,7 +119,7 @@ if ( ! $?WM_PRECISION_OPTION ) setenv WM_PRECISION_OPTION DP # WM_COMPILE_OPTION = Opt | Debug | Prof if ( ! $?WM_COMPILE_OPTION ) setenv WM_COMPILE_OPTION Opt -# WM_MPLIB = | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI +# WM_MPLIB = SYSTEMOPENMPI | OPENMPI | MPICH | MPICH-GM | HPMPI | GAMMA | MPI | QSMPI if ( ! $?WM_MPLIB ) setenv WM_MPLIB OPENMPI diff --git a/etc/settings.csh b/etc/settings.csh index 5df50a809aeb9dce1998b6251aaf1a283f8bcfaa..8b51bb7b412ca5878ad26d933fb822419150b078 100644 --- a/etc/settings.csh +++ b/etc/settings.csh @@ -82,7 +82,7 @@ unsetenv MPFR_ARCH_PATH # Select compiler installation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # compilerInstall = OpenFOAM | system -if ( ! $?compilerInstall ) set compilerInstall=OpenFOAM +if ( ! $?compilerInstall ) set compilerInstall=system switch ("$compilerInstall") case OpenFOAM: @@ -209,14 +209,20 @@ case OPENMPI: breaksw case SYSTEMOPENMPI: - # use the system installed openmpi, get library directory via mpicc + + # This uses the installed openmpi. It needs mpicc installed! + set mpi_version=openmpi-system - set libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` + + # Set compilation flags here instead of in wmake/rules/../mplibSYSTEMOPENMPI + setenv PINC "`mpicc --showme:compile`" + setenv PLIBS "`mpicc --showme:link`" + set libDir=`echo "$PLIBS" | sed -e 's/.*-L\([^ ]*\).*/\1/'` if ($?FOAM_VERBOSE && $?prompt) then - echo "Using system installed OpenMPI:" - echo " compile flags : `mpicc --showme:compile`" - echo " link flags : `mpicc --showme:link`" + echo "Using system installed MPI:" + echo " compile flags : $PINC" + echo " link flags : $PLIBS" echo " libmpi dir : $libDir" endif diff --git a/etc/settings.sh b/etc/settings.sh index 17f029539a8b020e292981c3f117a319c9c2058b..aae19a764b20e359fef52f32e66d2e6a670a1e9f 100644 --- a/etc/settings.sh +++ b/etc/settings.sh @@ -105,7 +105,7 @@ unset MPFR_ARCH_PATH # Select compiler installation # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # compilerInstall = OpenFOAM | system -: ${compilerInstall:=OpenFOAM} +: ${compilerInstall:=system} case "${compilerInstall:-OpenFOAM}" in OpenFOAM) @@ -237,13 +237,17 @@ OPENMPI) SYSTEMOPENMPI) # use the system installed openmpi, get library directory via mpicc mpi_version=openmpi-system - libDir=`mpicc --showme:link | sed -e 's/.*-L\([^ ]*\).*/\1/'` + + # Set compilation flags here instead of in wmake/rules/../mplibSYSTEMOPENMPI + export PINC="`mpicc --showme:compile`" + export PLIBS="`mpicc --showme:link`" + libDir=`echo "$PLIBS" | sed -e 's/.*-L\([^ ]*\).*/\1/'` if [ "$FOAM_VERBOSE" -a "$PS1" ] then - echo "Using system installed OpenMPI:" - echo " compile flags : `mpicc --showme:compile`" - echo " link flags : `mpicc --showme:link`" + echo "Using system installed MPI:" + echo " compile flags : $PINC" + echo " link flags : $PLIBS" echo " libmpi dir : $libDir" fi