diff --git a/applications/solvers/cfdemSolverIB/Make/options b/applications/solvers/cfdemSolverIB/Make/options
index 8a1101ab..a51d1dae 100755
--- a/applications/solvers/cfdemSolverIB/Make/options
+++ b/applications/solvers/cfdemSolverIB/Make/options
@@ -1,3 +1,5 @@
+include $(CFDEM_ADD_LIBS_DIR)/additionalLibs
+
EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
@@ -20,5 +22,7 @@ EXE_LIBS = \
-ldynamicFvMesh \
-ldynamicMesh \
-lfvOptions \
- -l$(CFDEM_LIB_NAME)
+ -l$(CFDEM_LIB_NAME) \
+ $(CFDEM_ADD_LIB_PATHS) \
+ $(CFDEM_ADD_LIBS)
diff --git a/applications/solvers/cfdemSolverPiso/Make/options b/applications/solvers/cfdemSolverPiso/Make/options
index e79c26f1..68aecd17 100644
--- a/applications/solvers/cfdemSolverPiso/Make/options
+++ b/applications/solvers/cfdemSolverPiso/Make/options
@@ -1,3 +1,5 @@
+include $(CFDEM_ADD_LIBS_DIR)/additionalLibs
+
EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
@@ -12,4 +14,6 @@ EXE_LIBS = \
-lincompressibleLESModels \
-lincompressibleTransportModels \
-lfiniteVolume \
- -l$(CFDEM_LIB_NAME)
+ -l$(CFDEM_LIB_NAME) \
+ $(CFDEM_ADD_LIB_PATHS) \
+ $(CFDEM_ADD_LIBS)
diff --git a/applications/solvers/cfdemSolverPisoScalar/Make/options b/applications/solvers/cfdemSolverPisoScalar/Make/options
index e79c26f1..68aecd17 100644
--- a/applications/solvers/cfdemSolverPisoScalar/Make/options
+++ b/applications/solvers/cfdemSolverPisoScalar/Make/options
@@ -1,3 +1,5 @@
+include $(CFDEM_ADD_LIBS_DIR)/additionalLibs
+
EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
@@ -12,4 +14,6 @@ EXE_LIBS = \
-lincompressibleLESModels \
-lincompressibleTransportModels \
-lfiniteVolume \
- -l$(CFDEM_LIB_NAME)
+ -l$(CFDEM_LIB_NAME) \
+ $(CFDEM_ADD_LIB_PATHS) \
+ $(CFDEM_ADD_LIBS)
diff --git a/applications/utilities/cfdemPostproc/Make/options b/applications/utilities/cfdemPostproc/Make/options
index c961d2d8..c6a87583 100644
--- a/applications/utilities/cfdemPostproc/Make/options
+++ b/applications/utilities/cfdemPostproc/Make/options
@@ -1,3 +1,5 @@
+include $(CFDEM_ADD_LIBS_DIR)/additionalLibs
+
EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
@@ -14,4 +16,6 @@ EXE_LIBS = \
-lincompressibleTransportModels \
-lfiniteVolume \
-l$(CFDEM_LIB_NAME) \
+ $(CFDEM_ADD_LIB_PATHS) \
+ $(CFDEM_ADD_LIBS)
diff --git a/applications/utilities/cfdemPostproc/cfdemPostproc.C b/applications/utilities/cfdemPostproc/cfdemPostproc.C
index 478136e3..e833ad63 100644
--- a/applications/utilities/cfdemPostproc/cfdemPostproc.C
+++ b/applications/utilities/cfdemPostproc/cfdemPostproc.C
@@ -98,7 +98,7 @@ int main(int argc, char *argv[])
particleCloud.averagingM().resetWeightFields();
particleCloud.momCoupleM(0).resetMomSourceField();
- particleCloud.dataExchangeM().couple();
+ particleCloud.dataExchangeM().couple(0);
particleCloud.dataExchangeM().getData("x","vector-atom",positions_,count);
particleCloud.dataExchangeM().getData("v","vector-atom",velocities_,count);
diff --git a/applications/utilities/cfdemPostproc/createFields.H b/applications/utilities/cfdemPostproc/createFields.H
index ab0ae8af..6856c6f2 100644
--- a/applications/utilities/cfdemPostproc/createFields.H
+++ b/applications/utilities/cfdemPostproc/createFields.H
@@ -26,7 +26,7 @@
IOobject::NO_WRITE
),
mesh,
- dimensionedVector("0", dimensionSet(0, 1, -1, 0, 0), vector::zero)
+ dimensionedVector("0", dimensionSet(0, 1, -1, 0, 0), Foam::vector::zero)
);
//========================
@@ -62,7 +62,7 @@
IOobject::AUTO_WRITE
),
mesh,
- dimensionedVector("0", dimensionSet(0, 1, -1, 0, 0), vector::zero)
+ dimensionedVector("0", dimensionSet(0, 1, -1, 0, 0), Foam::vector::zero)
);
//========================
diff --git a/src/lagrangian/cfdemParticle/Make/options b/src/lagrangian/cfdemParticle/Make/options
index 1f5e95e2..730442ef 100644
--- a/src/lagrangian/cfdemParticle/Make/options
+++ b/src/lagrangian/cfdemParticle/Make/options
@@ -4,6 +4,7 @@ sinclude $(RULES)/mplib$(WM_MPLIB)
GIT_VERSION := $(shell git describe --abbrev=4 --dirty --always --tags)
PFLAGS+= -DGITVERSION=\"$(GIT_VERSION)\"
+include $(CFDEM_ADD_LIBS_DIR)/additionalLibs
EXE_INC = \
$(PFLAGS) \
diff --git a/src/lagrangian/cfdemParticle/cfdTools/compressibleContinuityErrsPU.H b/src/lagrangian/cfdemParticle/cfdTools/compressibleContinuityErrsPU.H
new file mode 100644
index 00000000..67d0f088
--- /dev/null
+++ b/src/lagrangian/cfdemParticle/cfdTools/compressibleContinuityErrsPU.H
@@ -0,0 +1,53 @@
+/*---------------------------------------------------------------------------*\
+ CFDEMcoupling - Open Source CFD-DEM coupling
+
+ CFDEMcoupling is part of the CFDEMproject
+ www.cfdem.com
+ Christoph Goniva, christoph.goniva@cfdem.com
+ Copyright (C) 1991-2009 OpenCFD Ltd.
+ Copyright (C) 2009-2012 JKU, Linz
+ Copyright (C) 2012- DCS Computing GmbH,Linz
+-------------------------------------------------------------------------------
+License
+ This file is part of CFDEMcoupling.
+
+ CFDEMcoupling is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ CFDEMcoupling is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with CFDEMcoupling. If not, see .
+
+Global
+ continuityErrs
+
+Description
+ Calculates and prints the continuity errors.
+ The code is an evolution of compressibleContinuityErrs.H in OpenFOAM(R) 2.3.x,
+ where additional functionality for CFD-DEM coupling is added.
+\*---------------------------------------------------------------------------*/
+
+{
+ dimensionedScalar totalMass = fvc::domainIntegrate(rho*voidfraction);
+
+ scalar sumLocalContErr =
+ (fvc::domainIntegrate(mag(rho - thermo.rho())*voidfraction)/totalMass).value();
+
+ scalar globalContErr =
+ (fvc::domainIntegrate((rho - thermo.rho())*voidfraction)/totalMass).value();
+
+ cumulativeContErr += globalContErr;
+
+ Info<< "time step continuity errors : sum local = " << sumLocalContErr
+ << ", global = " << globalContErr
+ << ", cumulative = " << cumulativeContErr
+ << endl;
+}
+
+// ************************************************************************* //
diff --git a/src/lagrangian/cfdemParticle/cfdTools/versionInfo.H b/src/lagrangian/cfdemParticle/cfdTools/versionInfo.H
index ae743253..ca4f77a7 100755
--- a/src/lagrangian/cfdemParticle/cfdTools/versionInfo.H
+++ b/src/lagrangian/cfdemParticle/cfdTools/versionInfo.H
@@ -33,8 +33,8 @@ Description
#ifndef versionInfo_H
#define versionInfo_H
-word CFDEMversion="cfdem-2.8.2";
-word compatibleLIGGGHTSversion="3.0.6";
+word CFDEMversion="cfdem-2.9.0PFM";
+word compatibleLIGGGHTSversion="3.0.6PFM";
word OFversion="2.3.x-commit-4d6f4a3115ff76ec4154c580eb041bc95ba4ec09";
Info << "\nCFDEMcoupling version: " << CFDEMversion << endl;
diff --git a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.C b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.C
index a913c413..4820d62a 100644
--- a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.C
+++ b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.C
@@ -93,6 +93,7 @@ Foam::cfdemCloud::cfdemCloud
particleVolumes_(NULL),
particleV_(NULL),
numberOfParticles_(0),
+ d32_(-1),
numberOfParticlesChanged_(false),
arraysReallocated_(false),
forceModels_(couplingProperties_.lookup("forceModels")),
@@ -456,12 +457,12 @@ label Foam::cfdemCloud::liggghtsCommandModelIndex(word name)
return index;
}
-std::vector* Foam::cfdemCloud::getVprobe()
+std::vector< std::vector >* Foam::cfdemCloud::getVprobe()
{
return probeModel_->getVprobe();
}
-std::vector* Foam::cfdemCloud::getSprobe()
+std::vector< std::vector >* Foam::cfdemCloud::getSprobe()
{
return probeModel_->getSprobe();
}
@@ -480,13 +481,13 @@ bool Foam::cfdemCloud::evolve
numberOfParticlesChanged_ = false;
arraysReallocated_=false;
bool doCouple=false;
- probeModel_->clearProbes();
if(!ignore())
{
- if (dataExchangeM().couple())
+ if (dataExchangeM().doCoupleNow())
{
Info << "\n Coupling..." << endl;
+ dataExchangeM().couple(0);
doCouple=true;
// reset vol Fields
@@ -591,6 +592,8 @@ bool Foam::cfdemCloud::evolve
clockM().start(23,"giveDEMdata");
giveDEMdata();
clockM().stop("giveDEMdata");
+
+ dataExchangeM().couple(1);
}//end dataExchangeM().couple()
diff --git a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.H b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.H
index cc6565b1..f3c6edfe 100644
--- a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.H
+++ b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloud.H
@@ -127,6 +127,8 @@ protected:
int numberOfParticles_;
+ scalar d32_;
+
bool numberOfParticlesChanged_;
mutable bool arraysReallocated_;
@@ -305,6 +307,7 @@ public:
virtual inline double d(int);
+ inline scalar d32(bool recalc=true);
virtual inline double dMin() {return -1;}
virtual inline double dMax() {return -1;}
virtual inline int minType() {return -1;}
@@ -399,9 +402,9 @@ public:
void resetArray(double**&,int,int,double resetVal=0.);
- std::vector* getVprobe();
-
- std::vector* getSprobe();
+ std::vector< std::vector >* getVprobe();
+
+ std::vector< std::vector >* getSprobe();
};
diff --git a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloudI.H b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloudI.H
index 7f7d02cd..57405936 100644
--- a/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloudI.H
+++ b/src/lagrangian/cfdemParticle/cfdemCloud/cfdemCloudI.H
@@ -197,6 +197,25 @@ inline double cfdemCloud::d(int index)
return 2*radii_[index][0];
}
+inline double cfdemCloud::d32(bool recalc)
+{
+ if(d32_<0 || recalc)
+ {
+ scalar Ntot(0);
+ scalar Dtot(0);
+ scalar r(0);
+ for(int index = 0;index < numberOfParticles(); ++index)
+ {
+ r=radii_[index][0];
+ Ntot+=2*r*r*r;
+ Dtot+=r*r;
+ }
+ d32_=Ntot/Dtot;
+ }
+
+ return d32_;
+}
+
inline int cfdemCloud::numberOfParticles() const
{
return numberOfParticles_;
diff --git a/src/lagrangian/cfdemParticle/derived/cfdemCloudIB/cfdemCloudIB.C b/src/lagrangian/cfdemParticle/derived/cfdemCloudIB/cfdemCloudIB.C
index 94e9636b..44a9424e 100644
--- a/src/lagrangian/cfdemParticle/derived/cfdemCloudIB/cfdemCloudIB.C
+++ b/src/lagrangian/cfdemParticle/derived/cfdemCloudIB/cfdemCloudIB.C
@@ -101,19 +101,20 @@ bool Foam::cfdemCloudIB::evolve()
arraysReallocated_=false;
bool doCouple=false;
- if (dataExchangeM().couple())
+ if (dataExchangeM().doCoupleNow())
{
Info << "\n timeStepFraction() = " << dataExchangeM().timeStepFraction() << endl;
+ dataExchangeM().couple(0);
doCouple=true;
-// Info << "skipLagrangeToEulerMapping_: " << skipLagrangeToEulerMapping_
+// Info << "skipLagrangeToEulerMapping_: " << skipLagrangeToEulerMapping_
// << " haveEvolvedOnce_: " << haveEvolvedOnce_ << endl;
if(!skipLagrangeToEulerMapping_ || !haveEvolvedOnce_)
{
if(verbose_) Info << "- getDEMdata()" << endl;
getDEMdata();
Info << "nr particles = " << numberOfParticles() << endl;
-
+
// search cellID of particles
if(verbose_) Info << "- findCell()" << endl;
locateM().findCell(NULL,positions_,cellIDs_,numberOfParticles());
@@ -124,7 +125,7 @@ bool Foam::cfdemCloudIB::evolve()
voidFractionM().setvoidFraction(NULL,voidfractions_,particleWeights_,particleVolumes_,particleV_);
if(verbose_) Info << "setvoidFraction done." << endl;
}
-
+
// set particles forces
if(verbose_) Info << "- setForce(forces_)" << endl;
for(int index = 0;index < numberOfParticles_; ++index){
@@ -140,7 +141,9 @@ bool Foam::cfdemCloudIB::evolve()
// write DEM data
if(verbose_) Info << " -giveDEMdata()" << endl;
giveDEMdata();
-
+
+ dataExchangeM().couple(1);
+
haveEvolvedOnce_=true;
}
Info << "evolve done." << endl;
@@ -197,11 +200,11 @@ void Foam::cfdemCloudIB::calcVelocityCorrection
(
fvm::laplacian(phiIB) == fvc::div(U) + fvc::ddt(voidfraction)
);
- if(phiIB.needReference())
- {
- phiIBEqn.setReference(pRefCell_, pRefValue_);
- }
-
+ if(phiIB.needReference())
+ {
+ phiIBEqn.setReference(pRefCell_, pRefValue_);
+ }
+
phiIBEqn.solve();
U=U-fvc::grad(phiIB);
@@ -211,18 +214,18 @@ void Foam::cfdemCloudIB::calcVelocityCorrection
p=p+phiIB/U.mesh().time().deltaT(); // do we have to account for rho here?
p.correctBoundaryConditions();
- if (couplingProperties_.found("checkinterface"))
- {
- Info << "checking no-slip on interface..." << endl;
+ if (couplingProperties_.found("checkinterface"))
+ {
+ Info << "checking no-slip on interface..." << endl;
// #include "checkInterfaceVelocity.H" //TODO: check carefully!
- }
+ }
}
vector Foam::cfdemCloudIB::angularVelocity(int index)
{
vector vel;
- for(int i=0;i<3;i++) vel[i] = angularVelocities_[index][i];
+ for(int i=0;i<3;i++) vel[i] = angularVelocities_[index][i];
return vel;
}
diff --git a/src/lagrangian/cfdemParticle/etc/OFversion/OFversion.H b/src/lagrangian/cfdemParticle/etc/OFversion/OFversion.H
index ba6a30dd..bc3c6931 100644
--- a/src/lagrangian/cfdemParticle/etc/OFversion/OFversion.H
+++ b/src/lagrangian/cfdemParticle/etc/OFversion/OFversion.H
@@ -1,5 +1,5 @@
-#define version23 // currently being tested
-//#define version22 // currently being used
+#define version23 // currently being used
+//#define version22
//#define version21
//#define version16ext
//#define version15
diff --git a/src/lagrangian/cfdemParticle/etc/additionalLibs b/src/lagrangian/cfdemParticle/etc/additionalLibs
new file mode 100644
index 00000000..771640ae
--- /dev/null
+++ b/src/lagrangian/cfdemParticle/etc/additionalLibs
@@ -0,0 +1,8 @@
+# paths for additional libraries
+CFDEM_ADD_LIB_PATHS = \
+
+# additional libraries to be linked to solvers
+CFDEM_ADD_LIBS = \
+
+# additional static libraries to be linked to lagrangian library
+CFDEM_ADD_STATICLIBS = \
diff --git a/src/lagrangian/cfdemParticle/etc/bashrc b/src/lagrangian/cfdemParticle/etc/bashrc
index 391fe5cb..3f11759f 100755
--- a/src/lagrangian/cfdemParticle/etc/bashrc
+++ b/src/lagrangian/cfdemParticle/etc/bashrc
@@ -42,7 +42,7 @@
if [[ $CFDEM_LAMMPS_LIB_DIR == "" ]]; then
export CFDEM_LAMMPS_LIB_DIR=$CFDEM_LIGGGHTS_SRC_DIR/../lib/
else
- echo "using already defined CFDEM_LAMMPS_LIB_DIR=$CFDEM_LAMMPS_LIB_DIR ."
+ echo "using CFDEM_LAMMPS_LIB_DIR=$CFDEM_LAMMPS_LIB_DIR defined by user."
fi
#- LIGGGHTS lib name
@@ -54,6 +54,13 @@ export CFDEM_LIB_NAME=lagrangianCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
#- CFDEM compressible lib name
export CFDEM_LIB_COMP_NAME=lagrangianCFDEMcomp-$CFDEM_VERSION-$WM_PROJECT_VERSION
+#check if additional libraries should be compiled together with solvers
+if [[ $CFDEM_ADD_LIBS_DIR == "" ]]; then
+ export CFDEM_ADD_LIBS_DIR=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc
+else
+ echo "using CFDEM_ADD_LIBS_DIR=$CFDEM_ADD_LIBS_DIR defined by user."
+fi
+
#-----------------------------------------------------
# additional libraries
diff --git a/src/lagrangian/cfdemParticle/etc/cfdemSystemTest.sh b/src/lagrangian/cfdemParticle/etc/cfdemSystemTest.sh
index c3da9ab9..66b686a2 100755
--- a/src/lagrangian/cfdemParticle/etc/cfdemSystemTest.sh
+++ b/src/lagrangian/cfdemParticle/etc/cfdemSystemTest.sh
@@ -11,10 +11,15 @@ source $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/functions.sh
#- show gcc settings
checkGPP="true"
+#- sys check for add on
+checkAddOn="true"
+
#- system settings
-echo "*******************"
-echo "system settings:"
-echo "*******************"
+printHeader
+
+echo "*********************************"
+echo "CFDEM(R)coupling system settings:"
+echo "*********************************"
echo "CFDEM_VERSION=$CFDEM_VERSION"
echo "couple to OF_VERSION=$WM_PROJECT_VERSION"
@@ -29,8 +34,10 @@ checkDirComment "$CFDEM_SOLVER_DIR" '$CFDEM_SOLVER_DIR' "yes"
checkDirComment "$CFDEM_TUT_DIR" '$CFDEM_TUT_DIR' "yes"
checkDirComment "$CFDEM_LIGGGHTS_SRC_DIR" '$CFDEM_LIGGGHTS_SRC_DIR' "yes"
checkDirComment "$CFDEM_LPP_DIR" '$CFDEM_LPP_DIR' "yes"
+checkDirComment "$CFDEM_ADD_LIBS_DIR" '$CFDEM_ADD_LIBS_DIR' "yes"
checkDirComment "$CFDEM_PIZZA_DIR" '$CFDEM_PIZZA_DIR' "no"
checkDirComment "$CFDEM_TEST_HARNESS_PATH" '$CFDEM_TEST_HARNESS_PATH' "no"
+checkDirComment "$C3PO_SRC_DIR" '$C3PO_SRC_DIR' "no"
echo ""
echo "library names"
@@ -61,3 +68,16 @@ if [ $checkGPP == "true" ]
mpirun --version
fi
+echo "**********************"
+echo "additional packages..."
+
+if [ $checkAddOn == "true" ]
+ then
+ packageName=c3po
+ filePath=$CFDEM_SRC_DIR/$packageName
+ if [ $(checkDir $filePath) == "true" ]; then
+ source $filePath/etc/$packageName"SystemTest.sh"
+ else
+ echo "$packageName does not exist."
+ fi
+fi
diff --git a/src/lagrangian/cfdemParticle/etc/cshrc b/src/lagrangian/cfdemParticle/etc/cshrc
index 4e07778e..54154dfb 100755
--- a/src/lagrangian/cfdemParticle/etc/cshrc
+++ b/src/lagrangian/cfdemParticle/etc/cshrc
@@ -37,6 +37,13 @@
#- export environment variables (adapt to your paths)
#------------------------------------------------------------------------------
+#check if default lammps lib path should be used
+if ( ! ($?CFDEM_LAMMPS_LIB_DIR) ) then
+ setenv CFDEM_LAMMPS_LIB_DIR $CFDEM_LIGGGHTS_SRC_DIR"/../lib/"
+else
+ echo "using CFDEM_LAMMPS_LIB_DIR=$CFDEM_LAMMPS_LIB_DIR defined by user."
+endif
+
#- LIGGGHTS lib name
setenv CFDEM_LIGGGHTS_LIB_NAME lmp_$CFDEM_LIGGGHTS_MAKEFILE_NAME
@@ -46,6 +53,16 @@ setenv CFDEM_LIB_NAME lagrangianCFDEM-$CFDEM_VERSION-$WM_PROJECT_VERSION
#- CFDEM compressible lib name
setenv CFDEM_LIB_COMP_NAME lagrangianCFDEMcomp-$CFDEM_VERSION-$WM_PROJECT_VERSION
+#check if additional libraries should be compiled together with solvers
+if ( ! ($?CFDEM_ADD_LIBS_DIR) ) then
+ setenv CFDEM_ADD_LIBS_DIR $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc
+else
+ echo "using CFDEM_ADD_LIBS_DIR=$CFDEM_ADD_LIBS_DIR defined by user."
+endif
+
+#-----------------------------------------------------
+# additional libraries
+
#- LMP Many2Many lib path and makefile
setenv CFDEM_Many2ManyLIB_PATH $CFDEM_SRC_DIR/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/library
setenv CFDEM_Many2ManyLIB_MAKEFILENAME $CFDEM_LIGGGHTS_MAKEFILE_NAME
diff --git a/src/lagrangian/cfdemParticle/etc/functions.sh b/src/lagrangian/cfdemParticle/etc/functions.sh
index c719776b..2524130b 100755
--- a/src/lagrangian/cfdemParticle/etc/functions.sh
+++ b/src/lagrangian/cfdemParticle/etc/functions.sh
@@ -930,6 +930,52 @@ checkDirComment()
fi
}
+#========================================#
+#- function to check if a variable exits
+checkEnv()
+{
+ #--------------------------------------------------------------------------------#
+ #- define variables
+ var="$1"
+ #--------------------------------------------------------------------------------#
+ if [[ $var == "" ]]; then
+ echo "false"
+ else
+ echo "true"
+ fi
+}
+
+#========================================#
+#- function to check if a variable exits
+checkEnvComment()
+{
+ #--------------------------------------------------------------------------------#
+ #- define variables
+ var="$1"
+ varName="$2"
+ critical="$3"
+ #--------------------------------------------------------------------------------#
+ if [ $(checkEnv $var) == "true" ]; then
+ echo "valid:yes critical:$critical - $varName = $var"
+ else
+ echo "valid:NO critical:$critical - $varName = $var variable not set!"
+ fi
+}
+
+#========================================#
+#- function to print a header to terminal
+printHeader()
+{
+ echo ""
+ echo "*********************************************"
+ echo "* C F D E M (R) c o u p l i n g *"
+ echo "* *"
+ echo "* by DCS Computing GmbH *"
+ echo "* www.dcs-computing.com *"
+ echo "*********************************************"
+ echo ""
+}
+
#========================================#
#- track memory usage
trackMem()
diff --git a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.C b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.C
index 15b1bd4e..164d0ac3 100755
--- a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.C
+++ b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.C
@@ -196,7 +196,7 @@ void Foam::dataExchangeModel::destroy(double* array) const
//====
-bool Foam::dataExchangeModel::couple() const
+bool Foam::dataExchangeModel::couple(int i) const
{
bool coupleNow = false;
if (doCoupleNow())
diff --git a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.H b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.H
index c9ecf470..a1c7b78c 100755
--- a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.H
+++ b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/dataExchangeModel/dataExchangeModel.H
@@ -69,7 +69,6 @@ protected:
int couplingInterval_;
// Protected member functions
- void setNumberOfParticles(int) const;
public:
@@ -116,6 +115,8 @@ public:
// Member Function
+ void setNumberOfParticles(int) const;
+
inline const int& maxNumberOfParticles() const { return maxNumberOfParticles_; }
template
@@ -175,7 +176,7 @@ public:
virtual void destroy(double*) const;
//====
- virtual bool couple() const;
+ virtual bool couple(int) const;
virtual scalar timeStepFraction() const;
diff --git a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.C b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.C
index 90d132cb..7edf96e7 100644
--- a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.C
+++ b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.C
@@ -108,7 +108,9 @@ twoWayMPI::twoWayMPI
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
twoWayMPI::~twoWayMPI()
-{}
+{
+ if (liggghts == 1) delete lmp;
+}
// * * * * * * * * * * * * * * * public Member Functions * * * * * * * * * * * * * //
void twoWayMPI::getData
@@ -239,10 +241,10 @@ void Foam::twoWayMPI::destroy(double* array) const
}
//============
-bool Foam::twoWayMPI::couple() const
+bool Foam::twoWayMPI::couple(int i) const
{
bool coupleNow = false;
- if (doCoupleNow())
+ if (i==0)
{
couplingStep_++;
coupleNow = true;
@@ -293,9 +295,9 @@ bool Foam::twoWayMPI::couple() const
DEMstepsToInterrupt[ind] -= DEMstepsToInterrupt[ind-1];
}
- Info << "Foam::twoWayMPI::couple(): interruptTimes=" << interruptTimes << endl;
- Info << "Foam::twoWayMPI::couple(): DEMstepsToInterrupt=" << DEMstepsToInterrupt << endl;
- Info << "Foam::twoWayMPI::couple(): lcModel=" << lcModel << endl;
+ Info << "Foam::twoWayMPI::couple(i): interruptTimes=" << interruptTimes << endl;
+ Info << "Foam::twoWayMPI::couple(i): DEMstepsToInterrupt=" << DEMstepsToInterrupt << endl;
+ Info << "Foam::twoWayMPI::couple(i): lcModel=" << lcModel << endl;
}
if(particleCloud_.liggghtsCommand()[i]().type()=="runLiggghts")
diff --git a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.H b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.H
index 5e18455e..3e05b3a2 100644
--- a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.H
+++ b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMPI/twoWayMPI.H
@@ -91,10 +91,11 @@ private:
MPI_Comm comm_liggghts;
- LAMMPS_NS::LAMMPS *lmp;
-
// private member functions
+protected:
+ LAMMPS_NS::LAMMPS *lmp;
+
public:
//- Runtime type information
@@ -158,7 +159,7 @@ public:
void destroy(int*) const;
//==============
- bool couple() const;
+ bool couple(int) const;
int getNumberOfParticles() const;
int getNumberOfClumps() const;
diff --git a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/twoWayMany2Many.C b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/twoWayMany2Many.C
index 6a8d0795..0e32b66e 100644
--- a/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/twoWayMany2Many.C
+++ b/src/lagrangian/cfdemParticle/subModels/dataExchangeModel/twoWayMany2Many/twoWayMany2Many.C
@@ -388,11 +388,10 @@ void inline Foam::twoWayMany2Many::destroy(int* array) const
//==============
-bool Foam::twoWayMany2Many::couple() const
+bool Foam::twoWayMany2Many::couple(int i) const
{
bool coupleNow = false;
- label commandLines(0);
- if (doCoupleNow())
+ if (i==0)
{
couplingStep_++;
coupleNow = true;
@@ -408,7 +407,7 @@ bool Foam::twoWayMany2Many::couple() const
if (particleCloud_.liggghtsCommand()[i]().runCommand(couplingStep()))
{
- commandLines=particleCloud_.liggghtsCommand()[i]().commandLines();
+ label commandLines = particleCloud_.liggghtsCommand()[i]().commandLines();
for (int j=0; j-1 && index <102)
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/GidaspowDrag/GidaspowDrag.C b/src/lagrangian/cfdemParticle/subModels/forceModel/GidaspowDrag/GidaspowDrag.C
index 778a1e01..eaaeb94a 100644
--- a/src/lagrangian/cfdemParticle/subModels/forceModel/GidaspowDrag/GidaspowDrag.C
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/GidaspowDrag/GidaspowDrag.C
@@ -223,8 +223,8 @@ void GidaspowDrag::setForce() const
drag = dragCoefficient * Ur;
- // explicitInterpCorr
- forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
+ // explicitCorr
+ forceSubM(0).explicitCorr(drag,dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
if(forceSubM(0).verbose() && index >=0 && index <2)
{
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillDrag/KochHillDrag.C b/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillDrag/KochHillDrag.C
index 34bb2b8d..c4207680 100644
--- a/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillDrag/KochHillDrag.C
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillDrag/KochHillDrag.C
@@ -231,8 +231,8 @@ void KochHillDrag::setForce() const
{
drag = dragCoefficient * Ur;
- // explicitInterpCorr
- forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
+ // explicitCorr
+ forceSubM(0).explicitCorr(drag,dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],forceSubM(0).verbose());
}
}
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.C b/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.C
index 228f2867..cdb546b6 100755
--- a/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.C
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/KochHillRWDrag/KochHillRWDrag.C
@@ -353,8 +353,8 @@ void KochHillRWDrag::setForce() const
drag = dragCoefficient * Ur;
- // explicitInterpCorr
- forceSubM(0).explicitInterpCorr(dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_);
+ // explicitCorr
+ forceSubM(0).explicitCorr(drag,dragExplicit,dragCoefficient,Ufluid,U_[cellI],Us,UsField_[cellI],verbose_);
}
if(verbose_ && index >=0 && index <2)
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.C b/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.C
index a1cce23c..e49c258c 100644
--- a/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.C
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.C
@@ -179,8 +179,9 @@ void forceSubModel::partToArray
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-void forceSubModel::explicitInterpCorr
+void forceSubModel::explicitCorr
(
+ vector& dragImplicit,
vector& dragExplicit,
scalar& dragCoefficient,
vector& Ufluid,
@@ -218,11 +219,15 @@ void forceSubModel::readSwitches() const
particleCloud_.impDEMdrag_=true;
// do sanity check
+ // This can work if the accumulator is used, but is explicitely applied on the CFD side
+ // Sanity check is therefore not necessary here
+ /*
if(switches_[0]) // treatExplicit=true
{
- FatalError << "Please check your settings, treatExplicit together with implForceDEM does not work!."
+ FatalError << "Please check your settings, treatExplicit together with implForceDEM does not work!."
<< abort(FatalError);
}
+ */
}
if(switches_[7]) // implForceDEMaccumulated=true
@@ -320,7 +325,7 @@ const volVectorField& forceSubModel::divTauField(const volVectorField& U) const
const volVectorField& forceSubModel::IBDragPerV(const volVectorField& U,const volScalarField& p) const
{
#ifdef compre
- IBDragPerV_ = muField()*fvc::laplacian(U)-fvc::grad(p)
+ IBDragPerV_ = muField()*fvc::laplacian(U)-fvc::grad(p);
#else
IBDragPerV_ = rhoField()*(nuField()*fvc::laplacian(U)-fvc::grad(p));
#endif
diff --git a/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.H b/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.H
index e4cc63e5..935adac9 100644
--- a/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.H
+++ b/src/lagrangian/cfdemParticle/subModels/forceModel/forceSubModels/forceSubModel/forceSubModel.H
@@ -132,7 +132,7 @@ public:
// Member Functions
void partToArray(label&, vector&, const vector&, const vector& Ufluid=vector::zero, scalar Cd=scalar(0)) const;
- virtual void explicitInterpCorr(vector&, scalar&, vector&, const vector&, vector&, const vector&, bool,label index=100) const;
+ virtual void explicitCorr(vector&, vector&, scalar&, vector&, const vector&, vector&, const vector&, bool,label index=100) const;
// Access
diff --git a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.C b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.C
index 73c93e16..d00aaab9 100644
--- a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.C
+++ b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.C
@@ -30,6 +30,7 @@ Description
\*---------------------------------------------------------------------------*/
#include "error.H"
+#include
#include "liggghtsCommandModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@@ -120,8 +121,8 @@ void liggghtsCommandModel::checkTimeSettings(const dictionary& propsDict)
timeInterval_ = -1;
// calculate coupling times
- firstCouplingStep_ = floor(startTime_/DEMts/couplingInterval);
- lastCouplingStep_ = floor(endTime_/DEMts/couplingInterval);
+ firstCouplingStep_ = floor((startTime_+SMALL)/DEMts/couplingInterval);
+ lastCouplingStep_ = floor((endTime_+SMALL)/DEMts/couplingInterval);
couplingStepInterval_ = -1;
}
else //runEveryCouplingStep of every n steps or every writeStep
@@ -134,6 +135,7 @@ void liggghtsCommandModel::checkTimeSettings(const dictionary& propsDict)
timeInterval_ = readScalar(propsDict.lookup("timeInterval"));
// calculate coupling times
+ // if this makes troubles try floor((startTime_+SMALL)/.. as above
firstCouplingStep_ = floor(startTime_/DEMts/couplingInterval)+1;
lastCouplingStep_ = floor(endTime_/DEMts/couplingInterval)+1;
couplingStepInterval_ = floor(timeInterval_/DEMts/couplingInterval)+1;
@@ -238,6 +240,13 @@ DynamicList liggghtsCommandModel::executionsWithinPeriod(scalar TSstart,
return executions;
}
+bool liggghtsCommandModel::checkPath(fileName path)
+{
+ struct stat buffer;
+ return (stat (path.c_str(), &buffer) == 0);
+}
+
+
void liggghtsCommandModel::parseCommandList(wordList& commandList,labelList& labelList,scalarList& scalarList,word& command, dictionary& propsDict, bool timeStamp)
{
bool addBlank = true; // std no blanks after each word
diff --git a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.H b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.H
index cba32881..57144f5c 100644
--- a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.H
+++ b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/liggghtsCommandModel/liggghtsCommandModel.H
@@ -160,6 +160,8 @@ public:
DynamicList executionsWithinPeriod(scalar,scalar);
+ bool checkPath(fileName);
+
// Access
int nextRun(){return nextRun_;};
diff --git a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/writeLiggghts/writeLiggghts.C b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/writeLiggghts/writeLiggghts.C
index 967216ef..19547a66 100644
--- a/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/writeLiggghts/writeLiggghts.C
+++ b/src/lagrangian/cfdemParticle/subModels/liggghtsCommandModel/writeLiggghts/writeLiggghts.C
@@ -81,6 +81,15 @@ writeLiggghts::writeLiggghts
writeLast_=Switch(propsDict_.lookup("writeLast"));
}
+ if (propsDict_.found("path"))
+ {
+ path_=fileName(propsDict_.lookup("path"));
+ if (!checkPath(path_))
+ FatalError<<"The path you provided in writeLiggghtsProps is incorrect: " << path_ << "\n" << abort(FatalError);
+ else
+ Info << "Using user defined path to write LIGGGHTS restart file: " << path_ << endl;
+ }
+
if(propsDict_.found("writeName"))
{
propsDict_.lookup("writeName") >> writeName_;
diff --git a/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.C b/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.C
index bfa1335f..02f62f60 100644
--- a/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.C
+++ b/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.C
@@ -99,7 +99,9 @@ particleProbe::particleProbe
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
particleProbe::~particleProbe()
-{}
+{
+ clearProbes();
+}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
@@ -112,6 +114,7 @@ void particleProbe::setOutputFile() const
else
currItemId_+=1;
sPtr = sPtrList_[currItemId_-1]; //set the pointer to the output file from list
+ probeIndex_=currItemId_-1;
}
@@ -216,14 +219,79 @@ void particleProbe::writeHeader() const
void particleProbe::clearProbes() const
{
for (unsigned int i=0; i sValues, Field vValues) const
+{
+ int vSize_=vProbes_.size();
+ int sSize_=sProbes_.size();
+
+ //check if the particle already has an allocated vector. If not, create it. It should be only called at the beginning.
+ while(index >= vSize_)
+ {
+ std::vector particleVector_;
+ vProbes_.push_back(particleVector_);
+ vSize_=vProbes_.size();
+ }
+
+ while(index >= sSize_)
+ {
+ std::vector particleScalar_;
+ sProbes_.push_back(particleScalar_);
+ sSize_=sProbes_.size();
+ }
+
+ //register vector probes on the corresponding vector
+ forAll(vValues, iter)
+ {
+ int ProbeSize_=vProbes_[index].size();
+
+ if(probeIndex_ sValues, Field vValues) const
{
+ updateProbes(index,sValues,vValues); //update probe vectors
+
+
if(printNow_ && checkIDForPrint(index) && verboseToFile_)
{
//index and time
@@ -231,7 +299,6 @@ void particleProbe::writeProbe(int index, Field sValues, Field v
*sPtr << index << tab << particleCloud_.mesh().time().value() << " ";
*sPtr << "|| ";
- int vsize_ = vProbes_.size();
//vectorFields
*sPtr << setprecision(writePrecision_);
forAll(vValues, iter)
@@ -241,21 +308,6 @@ void particleProbe::writeProbe(int index, Field sValues, Field v
*sPtr << vValues[iter][1] << " ";
*sPtr << vValues[iter][2] << " ";
- if(index < vsize_)
- {
- vProbes_[index][0] += vValues[iter][0];
- vProbes_[index][1] += vValues[iter][1];
- vProbes_[index][2] += vValues[iter][2];
- }
- else
- {
- double * vprobe_ = new double[3];
- vprobe_[0] = vValues[iter][0];
- vprobe_[1] = vValues[iter][1];
- vprobe_[2] = vValues[iter][2];
-
- vProbes_.push_back(vprobe_);
- }
}
//scalarFields
@@ -265,7 +317,6 @@ void particleProbe::writeProbe(int index, Field sValues, Field v
forAll(sValues, iter)
{
*sPtr << sValues[iter] << " ";
- sProbes_.push_back(sValues[iter]);
}
}
diff --git a/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.H b/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.H
index 6aee1c94..cbcfb4bb 100644
--- a/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.H
+++ b/src/lagrangian/cfdemParticle/subModels/probeModel/particleProbe/particleProbe.H
@@ -101,10 +101,14 @@ private:
mutable bool printNow_;
- mutable std::vector sProbes_;
-
- mutable std::vector vProbes_;
-
+ mutable std::vector< std::vector > sProbes_;
+
+ mutable std::vector< std::vector > vProbes_;
+
+ mutable std::vector probeName_;
+
+ mutable int probeIndex_;
+
public:
//- Runtime type information
@@ -127,6 +131,7 @@ public:
~particleProbe();
// Member Functions
+ void updateProbes(int index, Field sValues, Field vValues) const;
void initialize(word typeName, word logFileName) const;
void setOutputFile() const;
void writeHeader() const;
@@ -134,8 +139,9 @@ public:
bool checkIDForPrint(int) const;
void setCounter() const;
void clearProbes() const;
- std::vector* getVprobe() { return &vProbes_; }
- std::vector* getSprobe() { return &sProbes_; }
+ std::vector< std::vector >* getVprobe() { return &vProbes_; }
+ std::vector< std::vector >* getSprobe() { return &sProbes_; }
+
};
diff --git a/src/lagrangian/cfdemParticle/subModels/probeModel/probeModel/probeModel.H b/src/lagrangian/cfdemParticle/subModels/probeModel/probeModel/probeModel.H
index 3179ee0b..e7a45494 100644
--- a/src/lagrangian/cfdemParticle/subModels/probeModel/probeModel/probeModel.H
+++ b/src/lagrangian/cfdemParticle/subModels/probeModel/probeModel/probeModel.H
@@ -140,8 +140,8 @@ public:
virtual bool checkIDForPrint(int) const { return false; }
virtual void setCounter() const {}
virtual bool active() const { return true; }
- virtual std::vector* getVprobe() { return NULL; }
- virtual std::vector* getSprobe() { return NULL; }
+ virtual std::vector< std::vector >* getVprobe() { return NULL; }
+ virtual std::vector< std::vector >* getSprobe() { return NULL; }
virtual void clearProbes() const {}
// Access
diff --git a/tutorials/cfdemSolverIB/twoSpheresGlowinskiMPI/Allrun.sh b/tutorials/cfdemSolverIB/twoSpheresGlowinskiMPI/Allrun.sh
index 183fe2e4..0c5232c9 100755
--- a/tutorials/cfdemSolverIB/twoSpheresGlowinskiMPI/Allrun.sh
+++ b/tutorials/cfdemSolverIB/twoSpheresGlowinskiMPI/Allrun.sh
@@ -23,5 +23,5 @@ else
fi
-gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
-
+#gnome-terminal --title='cfdemSolverIB twoSpheresGlowinskiMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI/Allrun.sh b/tutorials/cfdemSolverPiso/ErgunTestMPI/Allrun.sh
index d1ebdd40..fdfed502 100755
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI/Allrun.sh
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI/Allrun.sh
@@ -26,4 +26,5 @@ else
fi
#- run parallel CFD-DEM in new terminal
-gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
+#gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/constant/couplingProperties b/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/constant/couplingProperties
index 8c0ae32d..2c6aee77 100644
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/constant/couplingProperties
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/constant/couplingProperties
@@ -26,6 +26,9 @@ FoamFile
//===========================================================================//
// sub-models & settings
+syncMode false;
+//verbose;
+
modelType "A"; // A or B
couplingInterval 100;
@@ -171,7 +174,7 @@ KochHillDragProps
//);
implForceDEM true;
//implForceDEMaccumulated true;
- //explicitInterpCorr true;
+ //explicitCorr true;
}
BeetstraDragProps
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/system/controlDict b/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/system/controlDict
index 55a2adba..596886d1 100644
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/system/controlDict
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI/CFD/system/controlDict
@@ -63,27 +63,27 @@ functions
name probes;
probeLocations
(
- (0 0 0.0001)
- (0 0 0.0026)
- (0 0 0.0051)
- (0 0 0.0076)
- (0 0 0.0101)
- (0 0 0.0126)
- (0 0 0.0151)
- (0 0 0.0176)
- (0 0 0.0201)
- (0 0 0.0226)
- (0 0 0.0251)
- (0 0 0.0276)
- (0 0 0.0301)
- (0 0 0.0326)
- (0 0 0.0351)
- (0 0 0.0375)
- (0 0 0.0401)
- (0 0 0.0426)
- (0 0 0.0451)
- (0 0 0.0476)
- (0 0 0.0529)
+ (0.00003 0 0.0001)
+ (0.00003 0 0.0026)
+ (0.00003 0 0.0051)
+ (0.00003 0 0.0076)
+ (0.00003 0 0.0101)
+ (0.00003 0 0.0126)
+ (0.00003 0 0.0151)
+ (0.00003 0 0.0176)
+ (0.00003 0 0.0201)
+ (0.00003 0 0.0226)
+ (0.00003 0 0.0251)
+ (0.00003 0 0.0276)
+ (0.00003 0 0.0301)
+ (0.00003 0 0.0326)
+ (0.00003 0 0.0351)
+ (0.00003 0 0.0375)
+ (0.00003 0 0.0401)
+ (0.00003 0 0.0426)
+ (0.00003 0 0.0451)
+ (0.00003 0 0.0476)
+ (0.00003 0 0.0529)
);
// Fields to be probed
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI/parCFDDEMrun.sh b/tutorials/cfdemSolverPiso/ErgunTestMPI/parCFDDEMrun.sh
index 9642f34e..73c92d20 100644
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI/parCFDDEMrun.sh
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI/parCFDDEMrun.sh
@@ -21,7 +21,7 @@ logfileName="log_$headerText"
solverName="cfdemSolverPiso"
nrProcs="4"
machineFileName="none" # yourMachinefileName | none
-debugMode="off" # on | off| strict # on | off| strict
+debugMode="off" # on | off| strict
testHarnessPath="$CFDEM_TEST_HARNESS_PATH"
runOctave="true"
postproc="false"
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI_cgs/Allrun.sh b/tutorials/cfdemSolverPiso/ErgunTestMPI_cgs/Allrun.sh
index 95e8b6cc..8a87b183 100755
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI_cgs/Allrun.sh
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI_cgs/Allrun.sh
@@ -26,5 +26,5 @@ else
fi
#- run parallel CFD-DEM in new terminal
-gnome-terminal --title='cfdemSolverPiso ErgunTestMPI CFD' -e "bash $casePath/parCFDDEMrun.sh"
-
+#gnome-terminal --title='cfdemSolverPiso ErgunTestMPI_cgs CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh
diff --git a/tutorials/cfdemSolverPiso/ErgunTestMPI_restart/Allrun.sh b/tutorials/cfdemSolverPiso/ErgunTestMPI_restart/Allrun.sh
index f2dee44f..a5564adb 100755
--- a/tutorials/cfdemSolverPiso/ErgunTestMPI_restart/Allrun.sh
+++ b/tutorials/cfdemSolverPiso/ErgunTestMPI_restart/Allrun.sh
@@ -49,7 +49,8 @@ cp $casePath/CFD/constant/couplingProperties_restart $casePath/CFD/constant/coup
cp $casePath/CFD/system/controlDict_restart $casePath/CFD/system/controlDict
#- run parallel CFD-DEM in new terminal
-gnome-terminal --title='cfdemSolverPiso ErgunTestMPI_restart CFD' -e "bash $casePath/parCFDDEMrun.sh"
+#gnome-terminal --title='cfdemSolverPiso ErgunTestMPI_restart CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh
#- wait until sim has finished then run octave
diff --git a/tutorials/cfdemSolverPiso/settlingTestMPI/Allrun.sh b/tutorials/cfdemSolverPiso/settlingTestMPI/Allrun.sh
index 5cf3e338..3ccf874b 100755
--- a/tutorials/cfdemSolverPiso/settlingTestMPI/Allrun.sh
+++ b/tutorials/cfdemSolverPiso/settlingTestMPI/Allrun.sh
@@ -19,5 +19,5 @@ else
fi
#- run parallel CFD-DEM in new terminal
-gnome-terminal --title='cfdemSolverPiso settlingTest CFD' -e "bash $casePath/parCFDDEMrun.sh"
-
+#gnome-terminal --title='cfdemSolverPiso settlingTest CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh
diff --git a/tutorials/cfdemSolverPisoScalar/packedBedTemp/Allrun.sh b/tutorials/cfdemSolverPisoScalar/packedBedTemp/Allrun.sh
index 5696225a..4bb08142 100755
--- a/tutorials/cfdemSolverPisoScalar/packedBedTemp/Allrun.sh
+++ b/tutorials/cfdemSolverPisoScalar/packedBedTemp/Allrun.sh
@@ -26,5 +26,5 @@ else
fi
#- run parallel CFD-DEM in new terminal
-gnome-terminal --title='cfdemSolverPisoScalar packedBedTemp CFD' -e "bash $casePath/parCFDDEMrun.sh"
-
+#gnome-terminal --title='cfdemSolverPisoScalar packedBedTemp CFD' -e "bash $casePath/parCFDDEMrun.sh"
+bash $casePath/parCFDDEMrun.sh