From b59638e6b4a3ab7f9086d7989bd85a30d9844d2e Mon Sep 17 00:00:00 2001 From: cfdem Date: Fri, 23 Nov 2012 14:31:45 +0100 Subject: [PATCH] release on 2012-11-23_14-31-44 --- README | 82 ---------------------- doc/CFDEMcoupling_Manual.html | 17 ++--- doc/CFDEMcoupling_Manual.pdf | Bin 512708 -> 515182 bytes doc/CFDEMcoupling_Manual.txt | 1 + doc/githubAccess_public.pdf | Bin 361862 -> 361862 bytes doc/locateModel_turboEngineSearchM2M.html | 58 +++++++++++++++ doc/locateModel_turboEngineSearchM2M.txt | 52 ++++++++++++++ src/lagrangian/cfdemParticle/Make/files | 22 +++++- src/lagrangian/cfdemParticle/Make/options | 5 +- 9 files changed, 145 insertions(+), 92 deletions(-) delete mode 100644 README create mode 100644 doc/locateModel_turboEngineSearchM2M.html create mode 100644 doc/locateModel_turboEngineSearchM2M.txt diff --git a/README b/README deleted file mode 100644 index a677e0a8..00000000 --- a/README +++ /dev/null @@ -1,82 +0,0 @@ -/*---------------------------------------------------------------------------*\ - CFDEMcoupling - Open Source CFD-DEM coupling - - CFDEMcoupling is part of the CFDEMproject - www.cfdem.com - Christoph Goniva, christoph.goniva@cfdem.com - Copyright 2009-2012 JKU Linz - Copyright 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - This code is designed to realize coupled CFD-DEM simulations using LIGGGHTS - and OpenFOAM. Note: this code is not part of OpenFOAM (see DISCLAIMER). -\*---------------------------------------------------------------------------*/ - - -CFDEM coupling provides an open source parallel coupled CFD-DEM framework -combining the strengths of LIGGGHTS DEM code and the Open Source -CFD package OpenFOAM(R)(*). The CFDEMcoupling toolbox allows to expand -standard CFD solvers of OpenFOAM(R)(*) to include a coupling to the DEM -code LIGGGHTS. In this toolbox the particle representation within the -CFD solver is organized by "cloud" classes. Key functionalities are organised -in sub-models (e.g. force models, data exchange models, etc.) which can easily -be selected and combined by dictionary settings. - -The coupled solvers run fully parallel on distributed-memory clusters. - -Features are: - -- its modular approach allows users to easily implement new models -- its MPI parallelization enables to use it for large scale problems -- the "forum"_lws on CFD-DEM gives the possibility to exchange with other - users / developers -- the use of GIT allows to easily update to the latest version -- basic documentation is provided - -The file structure: - -- "src" directory including the source files of the coupling toolbox and models -- "applications" directory including the solver files for coupled CFD-DEM simulations -- "doc" directory including the documentation of CFDEMcoupling -- "tutorials" directory including basic tutorial cases showing the functionality - - - -Details on installation are given on the "www.cfdem.com" - -The functionality of this CFD-DEM framwork is described via "tutorial cases" showing -how to use different solvers and models. - -CFDEMcoupling stands for Computational Fluid Dynamics (CFD) - -Discrete Element Method (DEM) coupling. - -CFDEMcoupling is an open-source code, distributed freely under the terms of the -GNU Public License (GPL). - -Core development of CFDEMcoupling is done by -Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012 - - -\*---------------------------------------------------------------------------*/ -(*) "OpenFOAM(R)"_of is a registered trade mark of Silicon Graphics -International Corp. This offering is not affiliated, approved or endorsed by -Silicon Graphics International Corp., the producer of the OpenFOAM(R) software -and owner of the OpenFOAM(R) trademark. -\*---------------------------------------------------------------------------*/ diff --git a/doc/CFDEMcoupling_Manual.html b/doc/CFDEMcoupling_Manual.html index ba5b6f43..c1dc7c47 100644 --- a/doc/CFDEMcoupling_Manual.html +++ b/doc/CFDEMcoupling_Manual.html @@ -223,14 +223,15 @@ listing below of styles within certain commands. liggghtsCommandModel_readLiggghtsDataliggghtsCommandModel_runLiggghts liggghtsCommandModel_writeLiggghtslocateModel locateModel_engineSearchlocateModel_engineSearchIB -locateModel_standardSearchlocateModel_turboEngineSearch -meshMotionModelmeshMotionModel_noMeshMotion -momCoupleModelmomCoupleModel_explicitCouple -momCoupleModel_implicitCouplemomCoupleModel_noCouple -regionModelregionModel_allRegion -voidfractionModelvoidfractionModel_GaussVoidFraction -voidfractionModel_IBVoidFractionvoidfractionModel_bigParticleVoidFraction -voidfractionModel_centreVoidFractionvoidfractionModel_dividedVoidFraction +locateModel_standardSearchlocateModel_turboEngineM2MSearch +locateModel_turboEngineSearchmeshMotionModel +meshMotionModel_noMeshMotionmomCoupleModel +momCoupleModel_explicitCouplemomCoupleModel_implicitCouple +momCoupleModel_noCoupleregionModel +regionModel_allRegionvoidfractionModel +voidfractionModel_GaussVoidFractionvoidfractionModel_IBVoidFraction +voidfractionModel_bigParticleVoidFractionvoidfractionModel_centreVoidFraction +voidfractionModel_dividedVoidFraction diff --git a/doc/CFDEMcoupling_Manual.pdf b/doc/CFDEMcoupling_Manual.pdf index 45f41542988b47ce94f50968e5688742d8ea2972..912655567c9f01124865757df993e386849427c1 100644 GIT binary patch delta 42618 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/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 bin(#3L87s-xuv +
CFDEMproject WWW Site - CFDEM Commands +
+ + + + +
+ +

locateModel_turboEngineM2MSearch command +

+

Syntax: +

+

Defined in couplingProperties dictionary. +

+
locateModel turboEngineM2M;
+turboEngineM2MProps
+{
+    turboEngineProps
+    {
+        treeSearch switch1;
+    }
+} 
+
+
  • switch1 = switch to use tree search algorithm + + +
+

Examples: +

+
locateModel turboEngineM2M;
+turboEngineM2MProps
+{
+    turboEngineProps
+    {
+        treeSearch false;
+    }
+} 
+
+

Description: +

+

The locateModel "turboEngineM2M" locates the CFD cell and cellID corresponding to a given position. The algorithm is improved compared to engine search to show better parallel performance. +

+

The turboEngineM2MSearch locate Model can be used with different settings to use different algorithms: +

+
  • faceDecomp false; treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) + +
  • faceDecomp false; treeSearch true; will use a recursive tree structure to find the cell. + + +
+

Restrictions: This model can only be used with many to many data exchange model! +

+

Related commands: +

+

locateModel +

+ diff --git a/doc/locateModel_turboEngineSearchM2M.txt b/doc/locateModel_turboEngineSearchM2M.txt new file mode 100644 index 00000000..9e074348 --- /dev/null +++ b/doc/locateModel_turboEngineSearchM2M.txt @@ -0,0 +1,52 @@ +"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c + +:link(lws,http://www.cfdem.com) +:link(lc,CFDEMcoupling_Manual.html#comm) + +:line + +locateModel_turboEngineM2MSearch command :h3 + +[Syntax:] + +Defined in couplingProperties dictionary. + +locateModel turboEngineM2M; +turboEngineM2MProps +\{ + turboEngineProps + \{ + treeSearch switch1; + \} +\} :pre + +{switch1} = switch to use tree search algorithm :ulb,l +:ule + +[Examples:] + +locateModel turboEngineM2M; +turboEngineM2MProps +\{ + turboEngineProps + \{ + treeSearch false; + \} +\} :pre + +[Description:] + +The locateModel "turboEngineM2M" locates the CFD cell and cellID corresponding to a given position. The algorithm is improved compared to engine search to show better parallel performance. + +The turboEngineM2MSearch locate Model can be used with different settings to use different algorithms: + +faceDecomp false; treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l +faceDecomp false; treeSearch true; will use a recursive tree structure to find the cell. :l +:ule + +[Restrictions:] This model can only be used with many to many data exchange model! + +[Related commands:] + +"locateModel"_locateModel.html + diff --git a/src/lagrangian/cfdemParticle/Make/files b/src/lagrangian/cfdemParticle/Make/files index b26fe6cd..e2411291 100644 --- a/src/lagrangian/cfdemParticle/Make/files +++ b/src/lagrangian/cfdemParticle/Make/files @@ -20,18 +20,33 @@ $(forceModels)/forceModel/forceModel.C $(forceModels)/forceModel/newForceModel.C $(forceModels)/noDrag/noDrag.C $(forceModels)/DiFeliceDrag/DiFeliceDrag.C +$(forceModels)/DiFeliceDragNLift/DiFeliceDragNLift.C $(forceModels)/GidaspowDrag/GidaspowDrag.C $(forceModels)/SchillerNaumannDrag/SchillerNaumannDrag.C $(forceModels)/Archimedes/Archimedes.C $(forceModels)/ArchimedesIB/ArchimedesIB.C $(forceModels)/interface/interface.C $(forceModels)/ShirgaonkarIB/ShirgaonkarIB.C +$(forceModels)/fieldTimeAverage/fieldTimeAverage.C +$(forceModels)/fieldBound/fieldBound.C +$(forceModels)/volWeightedAverage/volWeightedAverage.C +$(forceModels)/totalMomentumExchange/totalMomentumExchange.C $(forceModels)/KochHillDrag/KochHillDrag.C +$(forceModels)/BeetstraDrag/multiphaseFlowBasic/multiphaseFlowBasic.C +$(forceModels)/BeetstraDrag/BeetstraDrag.C +$(forceModels)/LaEuScalarLiquid/LaEuScalarLiquid.C $(forceModels)/LaEuScalarTemp/LaEuScalarTemp.C +$(forceModels)/LaEuScalarDust/LaEuScalarDust.C $(forceModels)/virtualMassForce/virtualMassForce.C $(forceModels)/gradPForce/gradPForce.C +$(forceModels)/gradULiftForce/gradULiftForce.C $(forceModels)/viscForce/viscForce.C $(forceModels)/MeiLift/MeiLift.C +$(forceModels)/KochHillDragNLift/KochHillDragNLift.C +$(forceModels)/solidsPressureForce/solidsPressureForce.C +$(forceModels)/periodicPressure/periodicPressure.C +$(forceModels)/periodicPressureControl/periodicPressureControl.C +$(forceModels)/averageSlipVel/averageSlipVel.C $(forceModelsMS)/forceModelMS/forceModelMS.C $(forceModelsMS)/forceModelMS/newForceModelMS.C @@ -42,6 +57,7 @@ $(IOModels)/IOModel/newIOModel.C $(IOModels)/noIO/noIO.C $(IOModels)/basicIO/basicIO.C $(IOModels)/trackIO/trackIO.C +$(IOModels)/sophIO/sophIO.C $(voidFractionModels)/voidFractionModel/voidFractionModel.C $(voidFractionModels)/voidFractionModel/newVoidFractionModel.C @@ -57,22 +73,25 @@ $(locateModels)/locateModel/newLocateModel.C $(locateModels)/standardSearch/standardSearch.C $(locateModels)/engineSearch/engineSearch.C $(locateModels)/turboEngineSearch/turboEngineSearch.C +$(locateModels)/turboEngineSearchM2M/turboEngineSearchM2M.C $(locateModels)/engineSearchIB/engineSearchIB.C - $(meshMotionModels)/meshMotionModel/meshMotionModel.C $(meshMotionModels)/meshMotionModel/newMeshMotionModel.C $(meshMotionModels)/noMeshMotion/noMeshMotion.C +$(meshMotionModels)/DEMdrivenMeshMotion/DEMdrivenMeshMotion.C $(momCoupleModels)/momCoupleModel/momCoupleModel.C $(momCoupleModels)/momCoupleModel/newMomCoupleModel.C $(momCoupleModels)/explicitCouple/explicitCouple.C +$(momCoupleModels)/explicitCoupleSource/explicitCoupleSource.C $(momCoupleModels)/implicitCouple/implicitCouple.C $(momCoupleModels)/noCouple/noCouple.C $(regionModels)/regionModel/regionModel.C $(regionModels)/regionModel/newRegionModel.C $(regionModels)/allRegion/allRegion.C +$(regionModels)/differentialRegion/differentialRegion.C $(dataExchangeModels)/dataExchangeModel/dataExchangeModel.C $(dataExchangeModels)/dataExchangeModel/newDataExchangeModel.C @@ -80,6 +99,7 @@ $(dataExchangeModels)/oneWayVTK/oneWayVTK.C $(dataExchangeModels)/twoWayFiles/twoWayFiles.C $(dataExchangeModels)/noDataExchange/noDataExchange.C $(dataExchangeModels)/twoWayMPI/twoWayMPI.C +$(dataExchangeModels)/twoWayM2M/twoWayM2M.C $(averagingModels)/averagingModel/averagingModel.C $(averagingModels)/averagingModel/newAveragingModel.C diff --git a/src/lagrangian/cfdemParticle/Make/options b/src/lagrangian/cfdemParticle/Make/options index e24e4695..eb5d1463 100644 --- a/src/lagrangian/cfdemParticle/Make/options +++ b/src/lagrangian/cfdemParticle/Make/options @@ -13,6 +13,7 @@ EXE_INC = \ -I$(LIB_SRC)/lagrangian/basic/lnInclude \ -I$(LIB_SRC)/OpenFOAM/containers/HashTables/labelHashSet \ -I$(CFDEM_LIGGGHTS_SRC_DIR) \ + -I$(CFDEM_M2MLIB_PATH) \ LIB_LIBS = \ $(PLIBS) \ @@ -24,4 +25,6 @@ LIB_LIBS = \ -llagrangian \ -lmpi_cxx \ -L$(CFDEM_LIGGGHTS_SRC_DIR) \ - -l$(CFDEM_LIGGGHTS_LIB_NAME) + -l$(CFDEM_LIGGGHTS_LIB_NAME) \ + -L$(CFDEM_M2MLIB_PATH) \ + -lcouple