From f04d6c4790ee45a809325eb4f657736af586e82e Mon Sep 17 00:00:00 2001 From: goniva Date: Wed, 12 Feb 2014 10:02:10 +0100 Subject: [PATCH] release on 2014-02-12_10-02-10 --- README | 81 ++++++++++++++++++ doc/CFDEMcoupling_Manual.pdf | Bin 511596 -> 511619 bytes doc/githubAccess_public.html | 6 +- doc/githubAccess_public.pdf | Bin 362471 -> 362495 bytes doc/githubAccess_public.txt | 6 +- src/lagrangian/cfdemParticle/Make/files | 36 ++++++-- .../cfdemParticle/etc/library-list.txt | 2 + .../cfdemParticle/etc/solver-list.txt | 2 + .../cfdemParticle/etc/tutorial-list.txt | 18 ++-- 9 files changed, 131 insertions(+), 20 deletions(-) create mode 100755 README diff --git a/README b/README new file mode 100755 index 00000000..fd2ca756 --- /dev/null +++ b/README @@ -0,0 +1,81 @@ +/*---------------------------------------------------------------------------*\ + 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 the ESI Group. +This offering is not affiliated, approved or endorsed by ESI Group, +the producer of the OpenFOAMĀ® software and owner of the OpenFOAMĀ® trade mark. +\*---------------------------------------------------------------------------*/ diff --git a/doc/CFDEMcoupling_Manual.pdf b/doc/CFDEMcoupling_Manual.pdf index 602061b38607d83ece4fb0887b94bc0f182faa05..9cc04e71d9a168f9d4275e7ee356d304af5a5bbc 100644 GIT binary patch delta 5942 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 K%WpB-%Kv{y8thB} diff --git a/doc/githubAccess_public.html b/doc/githubAccess_public.html index 70c81f99..b3e3a316 100644 --- a/doc/githubAccess_public.html +++ b/doc/githubAccess_public.html @@ -87,13 +87,13 @@ git pull #- source cfdem env vars export CFDEM_VERSION=PUBLIC export CFDEM_PROJECT_DIR=$HOME/CFDEM/CFDEMcoupling-$CFDEM_VERSION-$WM_PROJECT_VERSION -export CFDEM_SRC_DIR=$CFDEM_PROJECT_DIR/src/lagrangian/cfdemParticle +export CFDEM_SRC_DIR=$CFDEM_PROJECT_DIR/src export CFDEM_SOLVER_DIR=$CFDEM_PROJECT_DIR/applications/solvers export CFDEM_DOC_DIR=$CFDEM_PROJECT_DIR/doc export CFDEM_UT_DIR=$CFDEM_PROJECT_DIR/applications/utilities export CFDEM_TUT_DIR=$CFDEM_PROJECT_DIR/tutorials export CFDEM_PROJECT_USER_DIR=$HOME/CFDEM/$LOGNAME-$CFDEM_VERSION-$WM_PROJECT_VERSION -export CFDEM_bashrc=$CFDEM_SRC_DIR/etc/bashrc +export CFDEM_bashrc=$CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/bashrc export CFDEM_LIGGGHTS_SRC_DIR=$HOME/LIGGGHTS/LIGGGHTS-PUBLIC/src export CFDEM_LIGGGHTS_MAKEFILE_NAME=fedora_fpic export CFDEM_LPP_DIR=$HOME/LIGGGHTS/mylpp/src @@ -109,7 +109,7 @@ $CFDEM_LIGGGHTS_SRC_DIR

should give "...: is a directory" otherwise something went wrong and the environment variables in ~/bashrc are not set correctly.

-

To specify the paths of pizza, please check the settings in $CFDEM_SRC_DIR/etc/bashrc. +

To specify the paths of pizza, please check the settings in $CFDEM_SRC_DIR/lagrangian/cfdemParticle/etc/bashrc.

If $CFDEM_SRC_DIR is set correctly, you can type

diff --git a/doc/githubAccess_public.pdf b/doc/githubAccess_public.pdf index 088cbb9194ba63a2380c475548fe97a263c62b61..73add382640054237ca9f3da01a12bb1c72f2fcc 100644 GIT binary patch delta 3085 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 delta 3053 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