From a1e1fa8f16ba97cf09ad6cfc061f6e2c4a9c7766 Mon Sep 17 00:00:00 2001 From: danielque Date: Tue, 17 Jul 2018 09:23:22 +0200 Subject: [PATCH 01/33] [DOC] delete old html files --- doc/CFDEMcoupling_Manual.html | 244 ------------------ doc/IOModel.html | 40 --- doc/IOModel_basicIO.html | 32 --- doc/IOModel_noIO.html | 32 --- doc/IOModel_sophIO.html | 32 --- doc/IOModel_trackIO.html | 32 --- doc/SCcontent/individual_commands.txt | 4 - doc/averagingModel.html | 41 --- doc/averagingModel_dense.html | 34 --- doc/averagingModel_dilute.html | 35 --- doc/cfdemSolverIB.html | 53 ---- doc/cfdemSolverPiso.html | 26 -- doc/cfdemSolverPisoScalar.html | 28 -- doc/chemistrModel.html | 51 ---- doc/chemistryModel_diffusionCoefficients.html | 62 ----- doc/chemistryModel_massTransferCoeff.html | 52 ---- doc/chemistryModel_species.html | 74 ------ doc/clockModel.html | 36 --- doc/clockModel_noClock.html | 32 --- doc/clockModel_standardClock.html | 34 --- doc/dataExchangeModel.html | 41 --- doc/dataExchangeModel_noDataExchange.html | 34 --- doc/dataExchangeModel_oneWayVTK.html | 58 ----- doc/dataExchangeModel_twoWayFiles.html | 50 ---- doc/dataExchangeModel_twoWayMPI.html | 46 ---- doc/dataExchangeModel_twoWayMany2Many.html | 46 ---- doc/forceModel.html | 50 ---- doc/forceModel_Archimedes.html | 52 ---- doc/forceModel_ArchimedesIB.html | 56 ---- doc/forceModel_DiFeliceDrag.html | 56 ---- doc/forceModel_GidaspowDrag.html | 68 ----- doc/forceModel_KochHillDrag.html | 61 ----- doc/forceModel_LaEuScalarTemp.html | 82 ------ doc/forceModel_MeiLift.html | 64 ----- doc/forceModel_SchillerNaumannDrag.html | 52 ---- doc/forceModel_ShirgaonkarIB.html | 60 ----- doc/forceModel_dSauter.html | 47 ---- doc/forceModel_fieldStore.html | 68 ----- doc/forceModel_gradPForce.html | 60 ----- doc/forceModel_noDrag.html | 45 ---- doc/forceModel_particleCellVolume.html | 59 ----- doc/forceModel_pdCorrelation.html | 58 ----- doc/forceModel_virtualMassForce.html | 52 ---- doc/forceModel_viscForce.html | 55 ---- doc/forceSubModel.html | 49 ---- doc/forceSubModel_ImEx.html | 45 ---- doc/forceSubModel_ImExCorr.html | 46 ---- doc/githubAccess_public.html | 186 ------------- doc/githubAccess_public.pdf | Bin 362748 -> 0 bytes doc/liggghtsCommandModel.html | 44 ---- doc/liggghtsCommandModel_execute.html | 97 ------- ...liggghtsCommandModel_readLiggghtsData.html | 49 ---- doc/liggghtsCommandModel_runLiggghts.html | 44 ---- doc/liggghtsCommandModel_writeLiggghts.html | 56 ---- doc/locateModel.html | 34 --- doc/locateModel_engineSearch.html | 51 ---- doc/locateModel_engineSearchIB.html | 70 ----- doc/locateModel_engineSearchMany2Many.html | 59 ----- doc/locateModel_standardSearch.html | 32 --- doc/locateModel_turboEngineSearch.html | 51 ---- doc/meshMotionModel.html | 34 --- doc/meshMotionModel_noMeshMotion.html | 32 --- doc/momCoupleModel.html | 45 ---- doc/momCoupleModel_explicitCouple.html | 52 ---- doc/momCoupleModel_implicitCouple.html | 62 ----- doc/momCoupleModel_noCouple.html | 40 --- doc/probeModel.html | 42 --- doc/probeModel_noProbe.html | 43 --- doc/regionModel.html | 34 --- doc/regionModel_allRegion.html | 32 --- doc/smoothingModel.html | 38 --- doc/smoothingModel_constDiffSmoothing.html | 58 ----- doc/smoothingModel_noSmoothing.html | 32 --- doc/voidFractionModel.html | 34 --- doc/voidFractionModel_GaussVoidFraction.html | 60 ----- doc/voidFractionModel_IBVoidFraction.html | 56 ---- ...FractionModel_bigParticleVoidFraction.html | 62 ----- doc/voidFractionModel_centreVoidFraction.html | 50 ---- ...voidFractionModel_dividedVoidFraction.html | 60 ----- 79 files changed, 4073 deletions(-) delete mode 100644 doc/CFDEMcoupling_Manual.html delete mode 100644 doc/IOModel.html delete mode 100644 doc/IOModel_basicIO.html delete mode 100644 doc/IOModel_noIO.html delete mode 100644 doc/IOModel_sophIO.html delete mode 100644 doc/IOModel_trackIO.html delete mode 100644 doc/SCcontent/individual_commands.txt delete mode 100644 doc/averagingModel.html delete mode 100644 doc/averagingModel_dense.html delete mode 100644 doc/averagingModel_dilute.html delete mode 100644 doc/cfdemSolverIB.html delete mode 100644 doc/cfdemSolverPiso.html delete mode 100644 doc/cfdemSolverPisoScalar.html delete mode 100644 doc/chemistrModel.html delete mode 100644 doc/chemistryModel_diffusionCoefficients.html delete mode 100644 doc/chemistryModel_massTransferCoeff.html delete mode 100644 doc/chemistryModel_species.html delete mode 100644 doc/clockModel.html delete mode 100644 doc/clockModel_noClock.html delete mode 100644 doc/clockModel_standardClock.html delete mode 100644 doc/dataExchangeModel.html delete mode 100644 doc/dataExchangeModel_noDataExchange.html delete mode 100644 doc/dataExchangeModel_oneWayVTK.html delete mode 100644 doc/dataExchangeModel_twoWayFiles.html delete mode 100644 doc/dataExchangeModel_twoWayMPI.html delete mode 100644 doc/dataExchangeModel_twoWayMany2Many.html delete mode 100644 doc/forceModel.html delete mode 100644 doc/forceModel_Archimedes.html delete mode 100644 doc/forceModel_ArchimedesIB.html delete mode 100644 doc/forceModel_DiFeliceDrag.html delete mode 100644 doc/forceModel_GidaspowDrag.html delete mode 100644 doc/forceModel_KochHillDrag.html delete mode 100644 doc/forceModel_LaEuScalarTemp.html delete mode 100644 doc/forceModel_MeiLift.html delete mode 100644 doc/forceModel_SchillerNaumannDrag.html delete mode 100644 doc/forceModel_ShirgaonkarIB.html delete mode 100644 doc/forceModel_dSauter.html delete mode 100644 doc/forceModel_fieldStore.html delete mode 100644 doc/forceModel_gradPForce.html delete mode 100644 doc/forceModel_noDrag.html delete mode 100644 doc/forceModel_particleCellVolume.html delete mode 100644 doc/forceModel_pdCorrelation.html delete mode 100644 doc/forceModel_virtualMassForce.html delete mode 100644 doc/forceModel_viscForce.html delete mode 100644 doc/forceSubModel.html delete mode 100644 doc/forceSubModel_ImEx.html delete mode 100644 doc/forceSubModel_ImExCorr.html delete mode 100644 doc/githubAccess_public.html delete mode 100644 doc/githubAccess_public.pdf delete mode 100644 doc/liggghtsCommandModel.html delete mode 100644 doc/liggghtsCommandModel_execute.html delete mode 100644 doc/liggghtsCommandModel_readLiggghtsData.html delete mode 100644 doc/liggghtsCommandModel_runLiggghts.html delete mode 100644 doc/liggghtsCommandModel_writeLiggghts.html delete mode 100644 doc/locateModel.html delete mode 100644 doc/locateModel_engineSearch.html delete mode 100644 doc/locateModel_engineSearchIB.html delete mode 100644 doc/locateModel_engineSearchMany2Many.html delete mode 100644 doc/locateModel_standardSearch.html delete mode 100644 doc/locateModel_turboEngineSearch.html delete mode 100644 doc/meshMotionModel.html delete mode 100644 doc/meshMotionModel_noMeshMotion.html delete mode 100644 doc/momCoupleModel.html delete mode 100644 doc/momCoupleModel_explicitCouple.html delete mode 100644 doc/momCoupleModel_implicitCouple.html delete mode 100644 doc/momCoupleModel_noCouple.html delete mode 100644 doc/probeModel.html delete mode 100644 doc/probeModel_noProbe.html delete mode 100644 doc/regionModel.html delete mode 100644 doc/regionModel_allRegion.html delete mode 100644 doc/smoothingModel.html delete mode 100644 doc/smoothingModel_constDiffSmoothing.html delete mode 100644 doc/smoothingModel_noSmoothing.html delete mode 100644 doc/voidFractionModel.html delete mode 100644 doc/voidFractionModel_GaussVoidFraction.html delete mode 100644 doc/voidFractionModel_IBVoidFraction.html delete mode 100644 doc/voidFractionModel_bigParticleVoidFraction.html delete mode 100644 doc/voidFractionModel_centreVoidFraction.html delete mode 100644 doc/voidFractionModel_dividedVoidFraction.html diff --git a/doc/CFDEMcoupling_Manual.html b/doc/CFDEMcoupling_Manual.html deleted file mode 100644 index eb31ac01..00000000 --- a/doc/CFDEMcoupling_Manual.html +++ /dev/null @@ -1,244 +0,0 @@ - -
CFDEMproject WWW Site -
- - - - - - - - -
- -

CFDEMcoupling Documentation -

-
- -
-
-
- -

1. Contents -

-

The CFDEMcoupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEMcoupling documentation can be improved. -

-1.1 About CFDEMcoupling
-1.2 Installation
-1.3 Tutorials
-1.4 couplingProperties dictionary
-1.5 liggghtsCommands dictionary
-1.6 Models and solvers
- -
- -

1.1 About CFDEMcoupling -

-

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: -

- -

The file structure: -

- -

Details on installation are given on the CFDEMproject WWW Site . -The functionality of this CFD-DEM framework 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 -

-

This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012 -

-
- -

(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. -

-
- -

1.2 Installation -

-

Please follow the installation routine provided at www.cfdem.com. -In order to get the latest code version, please use the git repository at http://github.com (githubAccess). -

-
- -

1.3 Tutorials -

-

General: -

-

Each solver of the CFDEMcoupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization). -

-

Location: -

-

The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, which can be reached by typing "cfdemTut" -

-

Structure: -

-

Each case is structured in a directory called "CFD" covering the CFD relevant settings and data, and a dirctory called "DEM" covering the DEM relevant settings and data. This allows to easily expand a pure CFD or DEM simulation case to a coupled case. -

-

Usage: -

-

Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell script, executed by typing "./Allrun.sh". The successful run of the script might need some third party software (e.g. octave, evince, etc.). -

-

Settings: -

-

The main settings of a simulation are done via dictionaries: -

-

The DEM setup of each case is defined by a LIGGGHTS input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the LIGGGHTS setup, please have a look at the LIGGGHTS manual. -

-

Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in OpenFOAM(R)(*) documentations (www.openFoam.com)(*). -

-

Settings of the coupling routines are defined in $caseDir/CFD/constant/couplingProperies (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/liggghtsCommands (allows to execute a LIGGGHTS command during a coupled simulation). -

-
- -

1.4 "couplingProperties" dictionary -

-

General: -

-

In the "couplingProperties" dictionary the setup of the coupling routines of the CFD-DEM simulation are defined. -

-

Location: $caseDir/CFD/constant -

-

Structure: -

-

The dictionary is divided into two parts, "sub-models & settings" and "sub-model properties". -

-

In "sub-models & settings" the following routines must be specified: -

- -

In "sub-model properties" sub-dictionaries might be defined to specify model specific parameters. -

-

Settings: -

-

Reasonable example settings for the "couplingProperties" dictionary are given in the tutorial cases. -

-
modelType 
-
-

"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I. -

-
couplingInterval 
-
-

The coupling interval determines the time passing between two CFD-DEM data exchanges. -

-

A useful procedure would be: -1) Set the DEM timestep in the in.xxx file according to the needs of the pure DEM problem. -2) Set the "couplingInterval", which refers to the DEM timesteps. Depending on the problem you will need to have a close (small couplingInterval) or loose coupling. -3) Choose the CFD timestep in the controlDict. It must be equal to or smaller than the coupling time, otherwise you will get the error: "Error - TS bigger than coupling interval!". -

-

Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen every 0.0001s. -

-
- -

1.5 "liggghtsCommands" dictionary -

-

General: -

-

In the "liggghtsCommands" dictionary liggghts commands being executed during a coupled CFD-DEM simulation are specified. -

-

Location: $caseDir/CFD/constant -

-

Structure: -

-

The dictionary is divided into two parts, first a list of "liggghtsCommandModels" is defined, then the settings for each model must be specified. -

-

Settings: -

-

Reasonable example settings for the "liggghtsCommands" dictionary are given in the tutorial cases. -

-
- -

1.6 Models/Solvers -

-

This section lists all CFDEMcoupling sub-models and solvers alphabetically, with a separate -listing below of styles within certain commands. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IOModelIOModel_basicIO
IOModel_noIOIOModel_sophIO
IOModel_trackIOaveragingModel
averagingModel_denseaveragingModel_dilute
cfdemSolverIBcfdemSolverPiso
cfdemSolverPisoScalarclockModel
clockModel_noClockclockModel_standardClock
dataExchangeModeldataExchangeModel_noDataExchange
dataExchangeModel_oneWayVTKdataExchangeModel_twoWayFiles
dataExchangeModel_twoWayMPIdataExchangeModel_twoWayMany2Many
forceModelforceModel_Archimedes
forceModel_ArchimedesIBforceModel_DiFeliceDrag
forceModel_dSauterforceModel_GidaspowDrag
forceModel_KochHillDragforceModel_LaEuScalarTemp
forceModel_MeiLiftforceModel_SchillerNaumannDrag
forceModel_ShirgaonkarIBforceModel_fieldStore
forceModel_pdCorrelationforceModel_gradPForce
forceModel_noDragforceModel_particleCellVolume
forceModel_virtualMassForceforceModel_viscForce
forceSubModelforceSubModel_ImEx
forceSubModel_ImExCorrliggghtsCommandModel
liggghtsCommandModel_executeliggghtsCommandModel_readLiggghtsData
liggghtsCommandModel_runLiggghtsliggghtsCommandModel_writeLiggghts
locateModellocateModel_engineSearch
locateModel_engineSearchIBlocateModel_engineSearchMany2Many
locateModel_standardSearchlocateModel_turboEngineSearch
meshMotionModelmeshMotionModel_noMeshMotion
momCoupleModelmomCoupleModel_explicitCouple
momCoupleModel_implicitCouplemomCoupleModel_noCouple
probeModelprobeModel_noProbe
regionModelregionModel_allRegion
smoothingModelsmoothingModel_constDiffSmoothing
smoothingModel_noSmoothingvoidfractionModel
voidfractionModel_GaussVoidFractionvoidfractionModel_IBVoidFraction
voidfractionModel_bigParticleVoidFractionvoidfractionModel_centreVoidFraction
voidfractionModel_dividedVoidFraction -
- - diff --git a/doc/IOModel.html b/doc/IOModel.html deleted file mode 100644 index 516fa6ed..00000000 --- a/doc/IOModel.html +++ /dev/null @@ -1,40 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

IOModel command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
IOModel "model"; 
-
- -

Examples: -

-

IOModel "off"; -

-

Note: This examples list might not be complete - please look for other models (IOModel_XY) in this documentation. -

-

Description: -

-

The IO-model is the base class to write data (e.g. particle properties) to files. -

-

Restrictions: -

-

none. -

-

Related commands: -

-

Note: This examples list may be incomplete - please look for other models (IOModel_XY) in this documentation. -

-

Default: none. -

- diff --git a/doc/IOModel_basicIO.html b/doc/IOModel_basicIO.html deleted file mode 100644 index 8152c9e9..00000000 --- a/doc/IOModel_basicIO.html +++ /dev/null @@ -1,32 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

IOModel_basicIO command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
IOModel "basicIO"; 
-
-

Examples: -

-
IOModel "basicIO"; 
-
-

Description: -

-

The basic IO-model writes particle positions velocities and radii to files. The default output directory ($casePath/CFD/proc*/time/lagrangian). Using the keyword "serialOutput;" in couplingProperties the IO is serial to the directory ($casePath/CFD/lagrangian). In the latter case only the data on processor 0 is written! Data is written every write time of the CFD simulation. -

-

Restrictions: None. -

-

Related commands: -

-

IOModel -

- diff --git a/doc/IOModel_noIO.html b/doc/IOModel_noIO.html deleted file mode 100644 index 0fb2343c..00000000 --- a/doc/IOModel_noIO.html +++ /dev/null @@ -1,32 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

IOModel_noIO command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
IOModel "off"; 
-
-

Examples: -

-
IOModel "off"; 
-
-

Description: -

-

The noIO-model is a dummy IO model. -

-

Restrictions: None. -

-

Related commands: -

-

IOModel -

- diff --git a/doc/IOModel_sophIO.html b/doc/IOModel_sophIO.html deleted file mode 100644 index 2bbf56ce..00000000 --- a/doc/IOModel_sophIO.html +++ /dev/null @@ -1,32 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

IOModel_sophIO command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
IOModel "sophIO"; 
-
-

Examples: -

-
IOModel "sophIO"; 
-
-

Description: -

-

The sophIO-model is based on basicIO model and additionally writes voidfraction, implicit forces, explicit forces. Data is written every write time of the CFD simulation. -

-

Restrictions: None. -

-

Related commands: -

-

IOModel -

- diff --git a/doc/IOModel_trackIO.html b/doc/IOModel_trackIO.html deleted file mode 100644 index 28d1e861..00000000 --- a/doc/IOModel_trackIO.html +++ /dev/null @@ -1,32 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

IOModel_trackIO command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
IOModel "trackIO"; 
-
-

Examples: -

-
IOModel "trackIO"; 
-
-

Description: -

-

The trackIO-model is based on sophIO model and additionally writes fields necessary to use the particleTracks utility (which needs a particleTrackProperties file in the constant dir). The particleTracks utility generates tracks of the particles and writes them to a vtk file. -

-

Restrictions: None. -

-

Related commands: -

-

IOModel -

- diff --git a/doc/SCcontent/individual_commands.txt b/doc/SCcontent/individual_commands.txt deleted file mode 100644 index f9512e78..00000000 --- a/doc/SCcontent/individual_commands.txt +++ /dev/null @@ -1,4 +0,0 @@ -1.6 Models/Solvers :h4,link(cmd_5),link(comm) - -This section lists all CFDEMcoupling sub-models and solvers alphabetically, with a separate -listing below of styles within certain commands. diff --git a/doc/averagingModel.html b/doc/averagingModel.html deleted file mode 100644 index 5237b6d4..00000000 --- a/doc/averagingModel.html +++ /dev/null @@ -1,41 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

averagingModel command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
averagingModel model; 
-
- -

Examples: -

-
averagingModel dense;
-averagingModel dilute; 
-
-

Note: This examples list might not be complete - please look for other averaging models (averagingModel_XY) in this documentation. -

-

Description: -

-

The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). -

-

Restrictions: -

-

None. -

-

Related commands: -

-

dense, dilute -

-

Default: none -

- diff --git a/doc/averagingModel_dense.html b/doc/averagingModel_dense.html deleted file mode 100644 index 239c82d9..00000000 --- a/doc/averagingModel_dense.html +++ /dev/null @@ -1,34 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

averagingModel_dense command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
averagingModel dense; 
-
-

Examples: -

-
averagingModel dense; 
-
-

Description: -

-

The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). In the "cfdemParticle cloud" this averaging model is used to calculate the average particle velocity inside a CFD cell. The "dense" model is supposed to be applied to cases where the granular regime is rather dense. -

-

Restrictions: -

-

No known restrictions. -

-

Related commands: -

-

averagingModel, dilute -

- diff --git a/doc/averagingModel_dilute.html b/doc/averagingModel_dilute.html deleted file mode 100644 index 6f75339c..00000000 --- a/doc/averagingModel_dilute.html +++ /dev/null @@ -1,35 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

averagingModel_dilute command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
averagingModel dilute; 
-
-

Examples: -

-
averagingModel dilute; 
-
-

Description: -

-

The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). -In the "cfdemParticle cloud" this averaging model is used to calculate the average particle velocity inside a CFD cell. The "dilute" model is supposed to be applied to cases where the granular regime is rather dilute. The particle velocity inside a CFD cell is evaluated from a single particle in a cell (no averaging). -

-

Restrictions: -

-

This model is computationally efficient, but should only be used when only one particle is inside one CFD cell. -

-

Related commands: -

-

averagingModel, dense -

- diff --git a/doc/cfdemSolverIB.html b/doc/cfdemSolverIB.html deleted file mode 100644 index 556d2441..00000000 --- a/doc/cfdemSolverIB.html +++ /dev/null @@ -1,53 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

cfdemSolverIB command -

-

Description: -

-

"cfdemSolverIB" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework, for calculating -the dynamics between immersed bodies and the surrounding fluid. Being an implementation of an immersed boundary method it allows tackling problems where the body diameter exceeds the maximal size of a fluid cell. Using the toolbox of OpenFOAM(R)(*) the governing equations of the fluid are computed and the corrections of velocity and pressure field with respect to the body-movement information, gained from LIGGGHTS, are incorporated. -

-

Code of this solver contributions by Alice Hager, JKU. -

-

Algorithm: -

-

For each time step ... -

- -

Use: -

-

The solver is realized within the Open Source framework CFDEMcoupling. Just as for the unresolved CFD-DEM solver cfdemSolverPiso the file CFD/constant/couplingProperties contains information about the settings for the different models. While IOmodel, DataExchangeModel etc. are applicable for all CFDEMcoupling-solvers, special locate-, force- and void fraction models were designed for the present case: -

-

engineSearchIB, ArchimedesIB, ShirgaonkarIB, IBVoidfraction -

-

References: -

-

GONIVA, C., KLOSS, C., HAGER,A., WIERINK, G. and PIRKER, S. (2011): "A MULTI-PURPOSE OPEN SOURCE CFD-DEM APPROACH", Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, Trondheim, Norway -

-

and -

-

HAGER, A., KLOSS, C. and GONIVA, C. (2011): "TOWARDS AN EFFICIENT IMMERSED BOUNDARY METHOD WITHIN AN OPEN SOURCE FRAMEWORK", Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, Trondheim, Norway -

-
- -

(*) OpenFOAM(R) 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/cfdemSolverPiso.html b/doc/cfdemSolverPiso.html deleted file mode 100644 index dda40592..00000000 --- a/doc/cfdemSolverPiso.html +++ /dev/null @@ -1,26 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

cfdemSolverPiso command -

-

Description: -

-

"cfdemSolverPiso" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying the PISO algorithm, "cfdemSolverPiso" has additional functionality for a coupling to the DEM code "LIGGGHTS". The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles whose trajectories are calculated in the DEM code LIGGGHTS. -

-

see: -

-

GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): "An Open Source CFD-DEM Perspective", Proc. of OpenFOAM Workshop, Göteborg, June 22.-24. -

-
- -

(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. -

-
- - diff --git a/doc/cfdemSolverPisoScalar.html b/doc/cfdemSolverPisoScalar.html deleted file mode 100644 index 191cd84a..00000000 --- a/doc/cfdemSolverPisoScalar.html +++ /dev/null @@ -1,28 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

cfdemSolverPisoScalar command -

-

Description: -

-

"cfdemSolverPisoScalar" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying PISO algorithm, "cfdemSolverPisoScalar" has additional functionality for a coupling to the DEM code "LIGGGHTS" as well as a scalar transport equation. The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles, whose trajectories are calculated in the DEM code LIGGGHTS. The scalar transport equation is coupled to scalar properties of the particle phase, thus convective heat transfer in a fluid granular system can be modeled with "cfdemSolverPisoScalar". -

-

see: -

-

GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): "An Open Source CFD-DEM Perspective", Proc. of OpenFOAM Workshop, Göteborg, June 22.-24. -

-

The heat transfer equation is implemented according to Nield & Bejan (2013), Convection in Porous Media, DOI 10.1007/978-1-4614-5541-7_2, Springer -

-
- -

(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. -

-
- - diff --git a/doc/chemistrModel.html b/doc/chemistrModel.html deleted file mode 100644 index c89115e5..00000000 --- a/doc/chemistrModel.html +++ /dev/null @@ -1,51 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

chemistryModel command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
chemistryModels
-(
-    model_x
-    model_y
-); 
-
- -

Examples: -

-
chemistryModels
-(
-    species
-    diffusionCoefficients
-    massTransferCoeff
-); 
-
-

Note: This examples list might not be complete - please look for other models (forceModel_XY) in this documentation. -

-

Description: -

-

The chemistry model initialized the fields performs calculation of molar fractions and diffusion coefficients of the gaseous reactants at the location of each DEM particle. All models are executed sequentially. These values are used in the DEM calculation of particle reduction models. -

-

Restrictions: -

-

None. -

-

Related commands: -

-

species, diffusionCoefficient, massTransferCoeff -

-

Note: This examples list may be incomplete - please look for other models (forceModel_XY) in this documentation. -

-

Default: none. -

- diff --git a/doc/chemistryModel_diffusionCoefficients.html b/doc/chemistryModel_diffusionCoefficients.html deleted file mode 100644 index 94c463dd..00000000 --- a/doc/chemistryModel_diffusionCoefficients.html +++ /dev/null @@ -1,62 +0,0 @@ - -
CFDEMproject WWW Site - CFDEM Commands -
- - - - -
- -

chemistryModel_diffusionCoefficients command -

-

Syntax: -

-

Defined in couplingProperties dictionary. -

-
chemistryModels
-(
-    diffusionCoefficients
-);
-diffusionCoefficientsProps
-{
-    verbose			switch1;        
-    ChemistryFile 		"$casePath/CFD/constant/foam.inp";
-     diffusantGasNames          ( speciesNames ); 
-}; 
-
-
  • switch1 = (optional, normally off) flag to give information - - -

    Examples: -

    -
    chemistryModels	
    -(
    -    diffusionCoefficients
    -);
    -speciesProps
    -{
    -    verbose			false;        
    -    ChemistryFile 		"$casePath/CFD/constant/foam.inp";
    -    diffusantGasNames       (    CO
    -                                 H2
    -                            ); 
    -} 
    -
    -

    Description: -

    -

    The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The diffusionCoefficients model activates the binary molecular diffusion calculation of the reacting species using the Fuller-Schettler-Giddings correlation. -

    -

    Restrictions: -

    -

    Species model needs to be active. -

    -

    Related commands: -

    -

    chemistryModel -

    - diff --git a/doc/chemistryModel_massTransferCoeff.html b/doc/chemistryModel_massTransferCoeff.html deleted file mode 100644 index a80c8d4a..00000000 --- a/doc/chemistryModel_massTransferCoeff.html +++ /dev/null @@ -1,52 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    chemistryModel_massTransferCoeff command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    chemistryModels
    -(
    -    massTransferCoeff
    -);
    -diffusionCoefficientsProps
    -{
    -    verbose			switch1;        
    -}; 
    -
    -
  • switch1 = (optional, normally off) flag to give information - - - -

    Examples: -

    -
    chemistryModels	
    -(
    -    massTransferCoeff
    -);
    -massTransferCoeffProps
    -{
    -     verbose 			false;	
    -} 
    -
    -

    Description: -

    -

    The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The coeffs needed to calculate the mass transfer coefficients are transferred to the DEM side, where it is used in the fix_chem_shrink_core module. -

    -

    Restrictions: -

    -

    Species model needs to be active. -

    -

    Related commands: -

    -

    chemistryModel -

    - diff --git a/doc/chemistryModel_species.html b/doc/chemistryModel_species.html deleted file mode 100644 index 7a4da001..00000000 --- a/doc/chemistryModel_species.html +++ /dev/null @@ -1,74 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    chemistryModel_species command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    chemistryModels
    -(
    -    species
    -);
    -speciesProps
    -{
    -    ChemistryFile 		"$casePath/CFD/constant/foam.inp";
    -    verbose			switch1;
    -    tempFieldName		"T";
    -    densityFieldName		"rho"
    -    voidfractionFieldName	"voidfraction"
    -    totalMoleFieldName		"molarConc"
    -    partTempName		"partTemp"
    -    partRhoName			"partRho"
    -}; 
    -
    - -

    Examples: -

    -
    chemistryModels	
    -(
    -    species
    -);
    -speciesProps
    -{
    -     ChemistryFile 		"$casePath/CFD/constant/foam.inp";
    -     verbose			false;
    -} 
    -
    -

    Description: -

    -

    The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The species model is the model, where the specified species fields (from the foam.inp folder) are intialized, and information such as temperature, density, molar concentration and more importantly the molar fractions are transferred to DEM side. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    chemistryModel -

    - diff --git a/doc/clockModel.html b/doc/clockModel.html deleted file mode 100644 index 7b590f81..00000000 --- a/doc/clockModel.html +++ /dev/null @@ -1,36 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    clockModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    clockModel model; 
    -
    - -

    Examples: -

    -
    clockModel standardClock; 
    -
    -

    Note: This examples list might not be complete - please look for other models (clockModel_XY) in this documentation. -

    -

    Description: -

    -

    The clockModel is the base class for models to examine the code/algorithm with respect to run time. -

    -

    Main parts of the clockModel classes are written by Josef Kerbl, JKU. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/clockModel_noClock.html b/doc/clockModel_noClock.html deleted file mode 100644 index 23448e45..00000000 --- a/doc/clockModel_noClock.html +++ /dev/null @@ -1,32 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    clockModel_noClock command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    clockModel off; 
    -
    -

    Examples: -

    -
    clockModel off; 
    -
    -

    Description: -

    -

    The "noClock" model is a dummy clockModel model which does not measure/evaluate the run time. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    clockModel -

    - diff --git a/doc/clockModel_standardClock.html b/doc/clockModel_standardClock.html deleted file mode 100644 index b757df1f..00000000 --- a/doc/clockModel_standardClock.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    clockModel_standardClock command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    clockModel standardClock; 
    -
    -

    Examples: -

    -
    clockModel standardClock; 
    -
    -

    Description: -

    -

    The "standardClock" model is a basic clockModel model which measures the run time between every ".start(int arrayPos,string name)" and ".stop(string name)" statement placed in the code. If a ".start(name)" is called more than once (e.g. in a loop) the accumulated times are calculated. After the simulation has finished, the data is stored in $caseDir/CFD/clockData/$startTime/*.txt . -Since the measurements are stored in an array, it is necessary to put a variable arrayPos (type integer) at the start command. Those do not need to be in ascending order and positions may be omitted. The standard size of this array is 30 and can be changed at the initialization of the standardClock class. If arrayPos is out of bounds, the array size will be doubled. The stop command does not need arrayPos, since the class remembers the positions. The string name is intended for easier evaluation afterwards an may be omitted like ".start(int arrayPos)" and ".stop()". The command ".stop(string name)" is a safety feature, because if the name is not equal to the started name, output will be produced for information. -After the case ran you may use the matPlot.py script located in $CFDEM_UT_DIR/vizClock/ to produce a graphical output of your measurements. The usage is like 'python < matPlot.py' and you have to be in the directory of the desired time step, where there is a file called "timeEvalFull.txt", which contains averaged and maximum data with respect to the number of processes. There is an alias called "vizClock" to run this python routine for visualizing the data. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    clockModel -

    - diff --git a/doc/dataExchangeModel.html b/doc/dataExchangeModel.html deleted file mode 100644 index 51d81bbd..00000000 --- a/doc/dataExchangeModel.html +++ /dev/null @@ -1,41 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel model; 
    -
    - -

    Examples: -

    -
    dataExchangeModel twoWayFiles;
    -dataExchangeModel twoWayMPI; 
    -
    -

    Note: This examples list might not be complete - please look for other models (dataExchangeModel_XY) in this documentation. -

    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    noDataExchange, oneWayVTK, twoWayFiles, twoWayMPI -

    -

    Default: none -

    - diff --git a/doc/dataExchangeModel_noDataExchange.html b/doc/dataExchangeModel_noDataExchange.html deleted file mode 100644 index f84f4a55..00000000 --- a/doc/dataExchangeModel_noDataExchange.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel_noDataExchange command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel noDataExchange; 
    -
    -

    Examples: -

    -
    dataExchangeModel noDataExchange; 
    -
    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. The noDataExchange model is a dummy model where no data is exchanged. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    dataExchangeModel -

    - diff --git a/doc/dataExchangeModel_oneWayVTK.html b/doc/dataExchangeModel_oneWayVTK.html deleted file mode 100644 index def26192..00000000 --- a/doc/dataExchangeModel_oneWayVTK.html +++ /dev/null @@ -1,58 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel_oneWayVTK command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel oneWayVTK;
    -oneWayVTKProps
    -{
    -    DEMts timeStep;
    -    relativePath "path";
    -    couplingFilename "filename";
    -    maxNumberOfParticles number;
    -}; 
    -
    - -

    Examples: -

    -
    dataExchangeModel oneWayVTK;
    -oneWayVTKProps
    -{
    -    DEMts 0.0001;
    -    relativePath "../DEM/post";
    -    couplingFilename "vtk_out%4.4d.vtk";
    -    maxNumberOfParticles 30000;
    -} 
    -
    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. The oneWayVTK model is a model that can exchange particle properties from DEM to CFD based on previously stored VTK data. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    dataExchangeModel -

    - diff --git a/doc/dataExchangeModel_twoWayFiles.html b/doc/dataExchangeModel_twoWayFiles.html deleted file mode 100644 index 46d2d891..00000000 --- a/doc/dataExchangeModel_twoWayFiles.html +++ /dev/null @@ -1,50 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel_twoWayFiles command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel twoWayFiles;
    -twoWayFilesProps
    -{
    -    couplingFilename "filename";
    -    maxNumberOfParticles number;
    -}; 
    -
    - -

    Examples: -

    -
    dataExchangeModel twoWayFiles;
    -twoWayFilesProps
    -{
    -    couplingFilename "vtk_out%4.4d.vtk";
    -    maxNumberOfParticles 30000;
    -} 
    -
    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayFiles model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via files that are sequentially written/read by the codes. -

    -

    Restrictions: -

    -

    Developed only for two processors, one for DEM and one for CFD run. -

    -

    Related commands: -

    -

    dataExchangeModel -

    - diff --git a/doc/dataExchangeModel_twoWayMPI.html b/doc/dataExchangeModel_twoWayMPI.html deleted file mode 100644 index cde5fabe..00000000 --- a/doc/dataExchangeModel_twoWayMPI.html +++ /dev/null @@ -1,46 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel_twoWayMPI command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel twoWayMPI;
    -twoWayMPIProps
    -{
    -    liggghtsPath "path";
    -}; 
    -
    - -

    Examples: -

    -
    dataExchangeModel twoWayMPI;
    -twoWayMPIProps
    -{
    -    liggghtsPath "../DEM/in.liggghts_init";
    -} 
    -
    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayMPI model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via MPI technique. The DEM run is executed by the coupling model, via a liggghtsCommandModel object. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    dataExchangeModel -

    - diff --git a/doc/dataExchangeModel_twoWayMany2Many.html b/doc/dataExchangeModel_twoWayMany2Many.html deleted file mode 100644 index db5b6592..00000000 --- a/doc/dataExchangeModel_twoWayMany2Many.html +++ /dev/null @@ -1,46 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    dataExchangeModel_twoWayMany2Many command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    dataExchangeModel twoWayMany2Many;
    -twoWayMany2ManyProps
    -{
    -    liggghtsPath "path";
    -}; 
    -
    - -

    Examples: -

    -
    dataExchangeModel twoWayMany2Many;
    -twoWayMany2ManyProps
    -{
    -    liggghtsPath "../DEM/in.liggghts_init";
    -} 
    -
    -

    Description: -

    -

    The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayMany2Many model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via MPI technique using the many to many mapping scheme. The DEM run is executed by the coupling model, via a liggghtsCommandModel object. -

    -

    Restrictions: -

    -

    Must be used in combination with the engineSearchMany2Many locate model! -

    -

    Related commands: -

    -

    dataExchangeModel -

    - diff --git a/doc/forceModel.html b/doc/forceModel.html deleted file mode 100644 index fa2d2f78..00000000 --- a/doc/forceModel.html +++ /dev/null @@ -1,50 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    model_x
    -    model_y
    -); 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    Archimedes
    -    DiFeliceDrag
    -); 
    -
    -

    Note: This examples list might not be complete - please look for other models (forceModel_XY) in this documentation. -

    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed. If the fluid density field is needed, by default a field named "rho" will be used. Via the forceSubModel an alternative field can be chosen. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    Archimedes, DiFeliceDrag, gradPForce, viscForce">dSauter -

    -

    Note: This examples list may be incomplete - please look for other models (forceModel_XY) in this documentation. -

    -

    Default: none. -

    - diff --git a/doc/forceModel_Archimedes.html b/doc/forceModel_Archimedes.html deleted file mode 100644 index 8301478d..00000000 --- a/doc/forceModel_Archimedes.html +++ /dev/null @@ -1,52 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_Archimedes command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    Archimedes
    -);
    -ArchimedesProps
    -{
    -    gravityFieldName "gravity";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    Archimedes
    -);
    -ArchimedesProps
    -{
    -    gravityFieldName "g";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The Archimedes model is a model that calculates the Archimedes' volumetric lift force stemming from density difference of fluid and particle. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_ArchimedesIB.html b/doc/forceModel_ArchimedesIB.html deleted file mode 100644 index 9f43172f..00000000 --- a/doc/forceModel_ArchimedesIB.html +++ /dev/null @@ -1,56 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_ArchimedesIB command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    ArchimedesIB
    -);
    -ArchimedesIBProps
    -{
    -    gravityFieldName "gravity";
    -    voidfractionFieldName "voidfraction";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    ArchimedesIB
    -);
    -ArchimedesIBProps
    -{
    -    gravityFieldName "g";
    -    voidfractionFieldName "voidfractionNext";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The ArchimedesIB model is a model that calculates the ArchimedesIB' volumetric lift force stemming from density difference of fluid and particle. This model is especially suited for resolved CFD-DEM simulations where the particle is represented by immersed boundary method. -

    -

    Restrictions: -

    -

    Only for immersed boundary solvers. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_DiFeliceDrag.html b/doc/forceModel_DiFeliceDrag.html deleted file mode 100644 index 53a2aebf..00000000 --- a/doc/forceModel_DiFeliceDrag.html +++ /dev/null @@ -1,56 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_DiFeliceDrag command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    DiFeliceDrag
    -);
    -DiFeliceDragProps
    -{
    -    velFieldName "U";
    -    interpolation switch1;
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    DiFeliceDrag
    -);
    -DiFeliceDragProps
    -{
    -    velFieldName "U";
    -    interpolation true;
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The DiFeliceDrag model is a model that calculates the particle based drag force following the correlation of Di Felice (see Zhou et al. (2010), JFM). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_GidaspowDrag.html b/doc/forceModel_GidaspowDrag.html deleted file mode 100644 index 9aa7318d..00000000 --- a/doc/forceModel_GidaspowDrag.html +++ /dev/null @@ -1,68 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_GidaspowDrag command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    GidaspowDrag
    -);
    -GidaspowDragProps
    -{
    -    velFieldName "U";
    -    voidfractionFieldName "voidfraction";
    -    granVelFieldName "Us";
    -    phi "scalar";
    -    interpolation switch1;
    -    implForceDEM switch2;
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    GidaspowDrag
    -);
    -GidaspowDragProps
    -{
    -    velFieldName "U";
    -    voidfractionFieldName "voidfraction";
    -    granVelFieldName "Us";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The GidaspowDrag model is a model that calculates the particle based drag force following the correlation of Gidaspow which is a combination of Ergun (1952) and Wen & Yu (1966) (see Zhu et al. (2007): "Discrete particle simulation of particulate systems: Theoretical developments", ChemEngScience). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_KochHillDrag.html b/doc/forceModel_KochHillDrag.html deleted file mode 100644 index 1cf16d96..00000000 --- a/doc/forceModel_KochHillDrag.html +++ /dev/null @@ -1,61 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_KochHillDrag command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    KochHillDrag
    -);
    -KochHillDragProps
    -{
    -    velFieldName "U";
    -    voidfractionFieldName "voidfraction"; 
    -    interpolation "bool1";
    -    implForceDEM "bool2";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    KochHillDrag
    -);
    -KochHillDragProps
    -{
    -    velFieldName "U";
    -    voidfractionFieldName "voidfraction"; 
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The KochHillDrag model is a model that calculates the particle based drag force following the correlation of Koch & Hill (2001) (see van Buijtenen et al. (2011): "Numerical and experimental study on multiple-spout fluidized beds", ChemEngScience). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_LaEuScalarTemp.html b/doc/forceModel_LaEuScalarTemp.html deleted file mode 100644 index 778d3e32..00000000 --- a/doc/forceModel_LaEuScalarTemp.html +++ /dev/null @@ -1,82 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_LaEuScalarTemp command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    LaEuScalarTemp
    -);
    -LaEuScalarTempProps
    -{
    -    velFieldName "U";
    -    tempFieldName "T";
    -    voidfractionFieldName "voidfraction";
    -    partTempName "Temp";
    -    partHeatFluxName "convectiveHeatFlux";
    -    lambda value;
    -    Cp value1;
    -    interpolation "switch1";
    -    verbose "switch2";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    LaEuScalarTemp
    -);
    -LaEuScalarTempProps
    -{
    -    velFieldName "U";
    -    tempFieldName "T";
    -    voidfractionFieldName "voidfraction";
    -    partTempName "Temp";
    -    partHeatFluxName "convectiveHeatFlux";
    -    lambda 0.0256;
    -    Cp 1007;
    -} 
    -
    -

    Description: -

    -

    This "forceModel" does not influence the particles or the fluid flow! Using the particles' temperature a scalar field representing "particle-fluid heatflux" is calculated. The solver then uses this source field in the scalar transport equation for the temperature. The model for convective heat transfer is based on Li and Mason (2000), A computational investigation of transient heat transfer in pneumatic transport of granular particles, Pow.Tech 112 -

    -

    Restrictions: -

    -

    Goes only with cfdemSolverScalar. The force model has to be the second (!!!) model in the forces list. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_MeiLift.html b/doc/forceModel_MeiLift.html deleted file mode 100644 index e21aa8b2..00000000 --- a/doc/forceModel_MeiLift.html +++ /dev/null @@ -1,64 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_MeiLift command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    MeiLift
    -);
    -MeiLiftProps
    -{
    -    velFieldName "U";
    -    useSecondOrderTerms;
    -    interpolation "switch1";
    -    verbose "switch2";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    MeiLift
    -);
    -MeiLiftProps
    -{
    -    velFieldName "U";
    -    useSecondOrderTerms;
    -    interpolation true;
    -    verbose true;
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The MeiLift model calculates the lift force for each particle based on Loth and Dorgan (2009). In case the keyword "useSecondOrderTerms" is not specified, this lift force model uses the expression of McLaughlin (1991, Journal of Fluid Mechanics 224:261-274). -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_SchillerNaumannDrag.html b/doc/forceModel_SchillerNaumannDrag.html deleted file mode 100644 index 7ff1ecae..00000000 --- a/doc/forceModel_SchillerNaumannDrag.html +++ /dev/null @@ -1,52 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_SchillerNaumannDrag command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    SchillerNaumannDrag
    -);
    -SchillerNaumannDragProps
    -{
    -    velFieldName "U";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    SchillerNaumannDrag
    -);
    -SchillerNaumannDragProps
    -{
    -    velFieldName "U";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The SchillerNaumannDrag model is a model that calculates the particle based drag force following the correlation of Schiller and Naumann. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_ShirgaonkarIB.html b/doc/forceModel_ShirgaonkarIB.html deleted file mode 100644 index 27e0ddc4..00000000 --- a/doc/forceModel_ShirgaonkarIB.html +++ /dev/null @@ -1,60 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_ShirgaonkarIB command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    ShirgaonkarIB
    -);
    -ShirgaonkarIBProps
    -{
    -    velFieldName "U";
    -    pressureFieldName "pressure";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    ShirgaonkarIB
    -);
    -ShirgaonkarIBProps
    -{
    -    velFieldName "U";
    -    pressureFieldName "p";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The ShirgaonkarIB model calculates the drag force (viscous and pressure force) acting on each particle in a resolved manner (see Shirgaonkar et al. (2009): "A new mathematical formulation and fast algorithm for fully resolved simulation of self-propulsion", Journal of Comp. Physics). This model is only suited for resolved CFD-DEM simulations where the particle is represented by immersed boundary method. -

    -

    References: -

    -

    SHIRGAONKAR, A.A., MACIVER, M.A. and PATANKAR, N.A., (2009), “A new mathematical formulation and fast algorithm for fully resolved simulation of self-propulsion”, J. Comput. Phys., 228, 2366-2390. -

    -

    Restrictions: -

    -

    Only for immersed boundary solvers. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_dSauter.html b/doc/forceModel_dSauter.html deleted file mode 100644 index 4f8050e3..00000000 --- a/doc/forceModel_dSauter.html +++ /dev/null @@ -1,47 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_dSauter command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    dSauter
    -);
    -dSauterProps
    -{
    -    coarseGrainingFactors
    -    (
    -        X Y Z
    -    );
    -}; 
    -
    - -

    Description: -

    -

    This "forceModel" does not influence the particles or the flow - it calculates the Sauter diameter -

    -
    -
    -

    . -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel

    - diff --git a/doc/forceModel_fieldStore.html b/doc/forceModel_fieldStore.html deleted file mode 100644 index d21cbcb9..00000000 --- a/doc/forceModel_fieldStore.html +++ /dev/null @@ -1,68 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_fieldStore command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    fieldStore
    -);
    -fieldStoreProps
    -{
    -    scalarFieldNames
    -    (
    -        "scalarField"
    -    );
    -    vectorFieldNames
    -    (
    -        "vectorField"
    -    );
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    fieldStore
    -);
    -fieldStoreProps
    -{
    -    scalarFieldNames
    -    (
    -        "voidfraction"
    -    );
    -    vectorFieldNames
    -    (
    -        "U"
    -    );
    -} 
    -
    -

    Description: -

    -

    This "forceModel" does not influence the particles or the flow - it is a tool to store a scalar/vector field! This is especially useful if you use a boundary condition which cannot interpreted correctly in your postporcessor (e.g. paraview). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_gradPForce.html b/doc/forceModel_gradPForce.html deleted file mode 100644 index 661b4a0e..00000000 --- a/doc/forceModel_gradPForce.html +++ /dev/null @@ -1,60 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_gradPForce command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    gradPForce;
    -);
    -gradPForceProps
    -{
    -    pFieldName "pressure";
    -    velocityFieldName "U";
    -    interpolation switch1;
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    gradPForce;
    -);
    -gradPForceProps
    -{
    -    pFieldName "p";
    -    velocityFieldName "U";
    -    interpolation true;
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The gradPForce model is a model that calculates the particle based pressure gradient force -(grad(p)) * Vparticle (see Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability" ,JFM). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_noDrag.html b/doc/forceModel_noDrag.html deleted file mode 100644 index 9baaa53f..00000000 --- a/doc/forceModel_noDrag.html +++ /dev/null @@ -1,45 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_noDrag command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    noDrag
    -); 
    -
    -

    Examples: -

    -
    forceModels
    -(
    -    noDrag
    -); 
    -
    -
    noDragProps (optional)
    -{
    -    noDEMForce; (optional)
    -}; 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The noDrag model sets the forces acting on the particle to zero. If several force models are selected and noDrag is the last model being executed, the fluid particle force will be set to zero. If the variable noDEMForce is set, then the forces communicated to the DEM solver are also set to zero. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_particleCellVolume.html b/doc/forceModel_particleCellVolume.html deleted file mode 100644 index c34aa71e..00000000 --- a/doc/forceModel_particleCellVolume.html +++ /dev/null @@ -1,59 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_particleCellVolume command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    particleCellVolume
    -);
    -particleCellVolumeProps
    -{
    -    upperThreshold value;
    -    lowerThreshold value2;
    -    verbose;
    -}; 
    -
    -
  • value = only cells with a field value (magnitude) lower than this upper threshold are considered - -
  • value2 = only cells with a field value (magnitude) greater than this lower threshold are considered - - - -

    Examples: -

    -
    forceModels
    -(
    -    particleCellVolume
    -);
    -particleCellVolumeProps
    -{
    -    upperThreshold 0.999;
    -    lowerThreshold 0;
    -    verbose;
    -} 
    -
    -

    Description: -

    -

    This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles as they are represented on the CFD mesh is calculated. Further the total volume of the cells particles are in is calculated. -At "writeTime" a field named particleCellVolume , where scalarField is the name of the original field, is written. This can then be probed using standard function object probes. Analogously a field named cellVolume is written. Using the verbose option a screen output is given. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_pdCorrelation.html b/doc/forceModel_pdCorrelation.html deleted file mode 100644 index c838e5e2..00000000 --- a/doc/forceModel_pdCorrelation.html +++ /dev/null @@ -1,58 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_pdCorrelation -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    pdCorrelation
    -);
    -pdCorrelationProps
    -{
    -    coarseGrainingFactors
    -    (
    -        X Y Z
    -    );
    -    particleDensities
    -    (
    -        A B C
    -    );
    -    runOnWriteOnly true;
    -}; 
    -
    - -

    Description: -

    -

    This "forceModel" does not influence the particles or the flow - it calculates the particle momentum-diameter correlation -

    -
    -
    -

    where delta is the type-specific coarsegraining factor. -

    -

    This model is sensitive to additionally pulled particle type info, and can either use the type-specific densities from the dict or those pulled from LIGGGHTS. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel

    - diff --git a/doc/forceModel_virtualMassForce.html b/doc/forceModel_virtualMassForce.html deleted file mode 100644 index 8c7499fc..00000000 --- a/doc/forceModel_virtualMassForce.html +++ /dev/null @@ -1,52 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_virtualMassForce command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    virtualMassForce
    -);
    -virtualMassForceProps
    -{
    -    velFieldName "U";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    virtualMassForce
    -);
    -virtualMassForceProps
    -{
    -    velFieldName "U";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The virtualMassForce model calculates the virtual mass force for each particle. -

    -

    Restrictions: -

    -

    Model not validated! -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceModel_viscForce.html b/doc/forceModel_viscForce.html deleted file mode 100644 index cb233bf1..00000000 --- a/doc/forceModel_viscForce.html +++ /dev/null @@ -1,55 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceModel_viscForce command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    forceModels
    -(
    -    viscForce;
    -);
    -viscForceProps
    -{
    -    velocityFieldName "U";
    -    interpolation "switch";
    -}; 
    -
    - -

    Examples: -

    -
    forceModels
    -(
    -    viscForce;
    -);
    -viscForceProps
    -{
    -    velocityFieldName "U";
    -} 
    -
    -

    Description: -

    -

    The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The viscForce model calculates the particle based viscous force, -(grad(tau)) * Vparticle (see Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM). -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceModel -

    - diff --git a/doc/forceSubModel.html b/doc/forceSubModel.html deleted file mode 100644 index 090c1c98..00000000 --- a/doc/forceSubModel.html +++ /dev/null @@ -1,49 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceSubModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties sub-dictionary of the force model in use. If no force sub-model is applied ImEx is used as default. If the keyword "forceSubModels" is provided, a choice of sub model is demanded. -

    -
    forceSubModels
    -(
    -    model_x
    -    model_y
    -); 
    -
    - -

    Examples: -

    -
    forceSubModels
    -(
    -    ImEx
    -); 
    -
    -

    Note: This examples list might not be complete - please look for other models (forceSubModel_XY) in this documentation. -

    -

    Description: -

    -

    The force sub model is designed to hold the settings a force model can have. For now it handles the treatExplicit, treatDEM and implDEM option. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands: -

    -

    ImEx -

    -

    Note: This examples list may be incomplete - please look for other models (forceSubModel_XY) in this documentation. -

    -

    Default: none. -

    - diff --git a/doc/forceSubModel_ImEx.html b/doc/forceSubModel_ImEx.html deleted file mode 100644 index 43b92d46..00000000 --- a/doc/forceSubModel_ImEx.html +++ /dev/null @@ -1,45 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceSubModel_ImEx command -

    -

    Syntax: -

    -

    Defined in couplingProperties sub-dictionary of the force model in use. -

    -

    forceSubModels -( - ImEx; -); -

    -

    treatExplicit true; // optional for some force models. -treatDEM true; // optional for some force models. -implDEM true; // optional for some force models. -

    -

    Examples: -

    -

    forceSubModels -( - ImEx; -); -treatExplicit true; // optional for some force models. -

    -

    Description: -

    -

    If no force sub-model is applied ImEx is used as default. If the keyword "forceSubModels" is provided, a choice of sub model is demanded. Depending on the force model different keywords are read and can therefrore be set (see the log file). If the keyword is provided, its value is used. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceSubModel -

    - diff --git a/doc/forceSubModel_ImExCorr.html b/doc/forceSubModel_ImExCorr.html deleted file mode 100644 index 215cb415..00000000 --- a/doc/forceSubModel_ImExCorr.html +++ /dev/null @@ -1,46 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    forceSubModel_ImExCorr command -

    -

    Syntax: -

    -

    Defined in couplingProperties sub-dictionary of the force model in use. -

    -

    forceSubModels -( - ImExCorr; -); -

    -

    treatExplicit true; // optional for some force models. -treatDEM true; // optional for some force models. -implDEM true; // optional for some force models. -explicitInterpCorr true; // optional for some force models. -

    -

    Examples: -

    -

    forceSubModels -( - ImExCorr; -); -treatExplicit true; // optional for some force models. -

    -

    Description: -

    -

    Same as ImEx, but it additionally reads "explicitInterpCorr" to correct the error steming from interpolation of Ufluid and averaging of Uparticles. -

    -

    Restrictions: -

    -

    none. -

    -

    Related commands: -

    -

    forceSubModel -

    - diff --git a/doc/githubAccess_public.html b/doc/githubAccess_public.html deleted file mode 100644 index b27e7093..00000000 --- a/doc/githubAccess_public.html +++ /dev/null @@ -1,186 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - - - - - -
    - -

    githubAccess_public -

    -
    - -

    Description: -

    -

    This routine describes how to set up a github account and pull repositories of the CFDEM(R)project. -After setting some environment variables LIGGGHTS(R) and CFDEM(R)coupling can be compiled -

    -

    Procedure: -

    -

    Basically the following steps have to be performed: -

    - -

    git clone the desired repository: -

    -

    If not already done, open a terminal and create a directory for LIGGGHTS(R) in $HOME: -

    -
    cd 
    -
    -
    mkdir LIGGGHTS 
    -
    -
    cd LIGGGHTS 
    -
    -

    To clone the public LIGGGHTS repository, open a terminal and execute: -

    -
    git clone git://github.com/CFDEMproject/LIGGGHTS-PUBLIC.git LIGGGHTS-PUBLIC -
    -

    If not already done, open a terminal and create a directory for CFDEM(R)coupling in $HOME: -

    -
    cd 
    -
    -
    mkdir CFDEM 
    -
    -
    cd CFDEM 
    -
    -

    Make sure that OpenFOAM(R) is already set up correctly! -

    -

    To clone the public CFDEM(R)coupling repository, open a terminal and execute: -

    -
    git clone git://github.com/CFDEMproject/CFDEMcoupling-PUBLIC.git CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION -
    -

    Troubles? See Troubleshooting section below. -

    -

    Update your repositories by git pull: -

    -

    To get the latest version, open a terminal, go to the location of your local installation and type: -Warning: git stash will remove your changes in $HOME/CFDEM/CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION ! -

    -
    cd $HOME/CFDEM/CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION
    -git stash
    -git pull 
    -
    -

    Set Environment Variables: -

    -

    Now you need to set some environment variables in ~/.bashrc (if you use c-shell, manipulate ~/.cshrc accordingly). Open ~/.bashrc -

    -
    gedit ~/.bashrc & 
    -
    -

    add the lines (you find them also in .../cfdemParticle/etc/bashrc and cshrc respectively): -

    -
    #================================================#
    -#- 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
    -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/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
    -export CFDEM_PIZZA_DIR=$HOME/LIGGGHTS/PIZZA/gran_pizza_17Aug10/src
    -. $CFDEM_bashrc
    -#================================================# 
    -
    -

    Save the ~/.bashrc, open a new terminal and test the settings. The commands: -

    -
    $CFDEM_PROJECT_DIR
    -$CFDEM_SRC_DIR
    -$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/lagrangian/cfdemParticle/etc/bashrc. -

    -

    If $CFDEM_SRC_DIR is set correctly, you can type -

    -
    cfdemSysTest 
    -
    -

    to get some information if the paths are set correctly. -

    -

    Compile LIGGGHTS(R) and CFDEM(R)coupling: -

    -

    If above settings were done correctly, you can compile LIGGGHTS(R) by typing: -

    -
    cfdemCompLIG 
    -
    -

    and you can then compile CFDEM(R)coupling by typing: -

    -
    cfdemCompCFDEM 
    -
    -

    You can run the tutorial cases by executing .../etc/testTutorial.sh through the alias cfdemTestTUT. -Alternatively you can run each tutorial using the Allrun.sh scripts in the tutorial directories. -

    -

    In case questions concerning the installation arise, please feel free to contact our forum at www.cfdem.com. -

    -

    Run Your Own Cases: -

    -

    If you want to run your own cases, please do so in $CFDEM_PROJECT_USER_DIR/run which is automatically being generated. E.g. copy one of the tutorial cases there, adapt it to your needs. -Changes in $CFDEM_TUT_DIR will be lost after every git stash! -

    -

    Additional Installations: -

    -

    Optionally you can install lpp which will help you convert the DEM (dump) data to VTK format. For standard CFD-DEM runs this will not be necessary. To get the DEM postprocessing tool "lpp" you need python-numpy package installed: -

    -
    sudo apt-get install python-numpy 
    -
    -

    You can pull the latest version of lpp with: -

    -
    cd $HOME/LIGGGHTS 
    -
    -
    git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/lpp mylpp 
    -
    -

    Backwards Compatibility: -

    -

    Basically CFDEM(R)coupling supports one OpenFOAM(R) version therefore all settings are prepared for that. Nevertheless we try to maintain backwards compatibility as long as it works with reasonable effort. -

    -

    The supported OpenFOAM(R) and LIGGGHTS(R) versions are stated in: -src/lagrangian/cfdemParticle/cfdTools/versionInfo.H -

    -

    For using other versions you can manipulate: -src/lagrangian/cfdemParticle/etc/OFversion/OFversion.H -(still not all functionality might work then!) -

    -

    Troubleshooting: -

    - -

    a) The git protocol will not work if your computer is behind a firewall which blocks the relevant TCP port, you can use alternatively (write command in one line): -

    -

    git clone https://user@github.com/CFDEMproject/CFDEMcoupling-PUBLIC.git -CFDEMcoupling-PUBLIC-$WM_PROJECT_VERSION -

    -

    b) If you face the error: "error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/...", -

    -

    please use: env GIT_SSL_NO_VERIFY=true git clone https://github... -

    -

    (see http://stackoverflow.com/questions/3777075/https-github-access) -

    -

    c) If you face the error: "Agent admitted failure to sign using the key. Permission denied (publickey).", after ssh -T git@github.com -

    -

    please type: "ssh-add" -

    -

    (see: https://help.github.com/articles/error-agent-admitted-failure-to-sign) -

    - diff --git a/doc/githubAccess_public.pdf b/doc/githubAccess_public.pdf deleted file mode 100644 index 13f6bb53a70227787f71227b0ae424e04f3fd7f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362748 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
    915jC|0I9G96m& z^vv!9F?GgULruJuARU&b5G(M<*Z2L(m-I*^on%s7>O4(X;c(tXKypLv0@s=&=gIGh zHv&*ftRGZXTP-sYn(DjJYOnVk@1~^4Df1h=q&f(s@XyG*bx&$t6q5gXbt$+Kh zFA7XJ=`F>v08fESa>2%_Rb(&0Ru8*Il8?8o_>891+Qbme6RySP=84M-!g$6B!V#mQ z%mNuz=2Eh5Y|U9@tQ?{3OnwappI|+$F0E5)xj3>CNekMD0pvJKRI+i+8-cC-esPVR zC=EW1f=>eCQ#3+`G(O<^QUAwly;3{Q;W(nbH(!{d&DEHi${ro5t1AV!n^f@T-rb?$ z${`G1ND-k`i>F7pmB?Kd4L!i5#Au%!fy{W?E;yd80U2;m>_xLr6p9%3jQxw6S&L^8 zJC6q;tO*7C=Mu3ZCH4hGNT$-Fe`@VmHt6bi^Pv6S-si)QLy1o$x9fVY7-B5qW>iYG z@+V@@^J@Ei9D^P;OLnTrG4m@hiSzZ%4K{Fk;-i6wquea63<0X{5@>L3$)2cR=ThIG zMbgK1SkHGa8mv^FgNJ3F^h%IAbQD}CA9aT-ocJJBJmIb5N4kSwDh_qEbpNJG&*dr(syY>% zb*DQRxaS5ZmvE0$fHOpyJ+#VyJ2+2$p;j8+eyCRNT`31(hn3^ir3Dph4aN~5_O7U4 z6be{$@P>6uNqPkZh0D4O=UYo*le-?_fb?jz%}(K8pY7Y35z0)yhL5Z)Ry`luX7Uvm zsks;Z{QPZDxDTmoYN?hwVc^&NctTV%es-+y(N)~B)NIGvh6FZy>udlTQSRz8pav>h z!qLoQav1B@U(+b3-0n1y?6X+oM+d)iMm(0He1-k;&I9B#6m$8+Zv4yu*SqG!3{CAJ zKWw_ed0!~urqPM)5ILs->PN-Tz?|#$kml!=flZ3e)V5FynQb>K(kEc2W`ajQ z0M6}Q%Q*}6y=US=O`1O6V%j0|VWBCyx6l59Vw6^Ly2!l?D`;>+m2%`G`}(*@Xdq}+ z$NY9~gkP2~>4UH{zMtxb->1J81AaPo71Ry?x>tWgMli480|4D0K^O&WPVFml2#d;5 z2KH#|6zzEXg1a#HbxaS%xJy9Ab-BQ$;W9o$q_O!|>`|2}kkO8sc>UK=k7%=FENC_= zPS#Q1Eac9`3noZx(cuPTZH=5p)j~_tuggY{Qc~xRF3X8#E|6y6IqlyB5VT8Sn#gV6 zOD%WBXs#+9BF}1Z8TSxKc{U2-o*?GUfQ2oCN_oswT(iEL!Xy(&l-z2x8E`#XnJOJq46`Oov0<4d@l%p%#d3R6d!i-kDrfTFdPx$A@fnu zPC&B9$NrvLOJ=a7o%Q%EYdaO6 zj;6{GDEFEVd|n{I*rC} zIchVph^p6f6OwsMIeo`{le&Xx_m$`@+n54XL>{@o%K1Xy@0DzvWc~=x-d&CH2a$ij z8QWd2ZVK>uo0}j|(Ca|qkx@7(82ODWYed&+?FB4PP9uYl;2r9ydDRBITnh(*%&4Nm z@P&_-O}&mCh@t$^2xyp?+3YP?Jh1@V7nY+qVX{;1t`%E zE;d^T%WO50PDP%Ui^sTfXY8nKSW78>(A>WchI}80sQn7I1`QmG@>2_R zJls@tBEN;4XKtmu?*)hrWf+6YWNnQA`Q&Z%WJ3i#I8srHbmz%?R@dP?5b;Oxjkc$tJV>hJ12!FNZqpPyGDCXH3e56|6y=D$0#?(xWD=X^h3qS`}`K zmsnP4Kp$Y{>p~XPQJKF9;cH9!=-gZiJG5WsrYR56ZoNS*adZWTR@eDzyJ2*{lG_FI z_zgPq7|K3sVEVvd$e^aIOafq$BN-3^CG)xxK)+YhTn~>)ME4@Y^f;N?Yd~gIv+4W} zqKJ1hshh4B!0bYVS7P}hifS;Dm$(`;uO>(L$M~oF<#?eE{w!fyrMlq0VLU&y!rA#j zoE4I33W!B&&Hd1*I{ryrq{bMkW`gU><+wJ+kN|7jz8N)#jk9V}rtSk^@wI}h*% z<>@Ec(5Xp_%)L117133EtrXNvxL_%z@Dd){+31qv zn=A}OWr?Cyp?gE0vmqh{Q^Iyp z!=SNwR7xAUC0W_wt_Js^v+w{d8HGdKr*tskifl&wSq-jR%|AsQqc{U)-WRre%fha) z1bkDuPA$=ziB={LLFEdHXjQ17R$lX**|QLas{m_D|pWqDX4^$=a+ z5;4vLd&nFAXgwgX|0$V{yM%XBJT$8rHEm|KfnDFLU-r+uWrsT}MQBYbXa>%~L-&zU zJ#shN%~Edq7O%x1e$RxH)_I+$?o?Z?IIJz_bz;gNW`M)I&9z7`bX%L#}>2B6l-rOmeGu#O-kKwa( zfNuo>ecZOGAC^yPWkP74Dr(u7D9hL`r}ymLXQ!B z1?bHZdWQ69{Ue_J`)C!Mhjy{G^uX!pbehb}nSdo(SxgjZxP}+h2SHj_AS9kGOmtQC zMJ~~=hM8EZ+D36g-j@s>1|3yR@YKZp=_)DFNE~VM%X!*-DWx#uS36RdzXX*CdYSRb zSZ&k0Tt|~i4=dfM$naP^B|#1v5DmKQY#UZ270)AJFwcd~ z5VdcWCbH0-m&vn7-@w!cQnbFcr2AO$el!e1zvo3LVk=P2(KHKGfS`|D;M)0zOx0L{ z_6T0MK)21yll-&{O89|{Q)*zqG9YVOEBco1UCV4_LDr-wO&g>gfNl3O4}+#bmXn)+-DGYcA)3k@Ouq1kH7QH zp8400@!=N*n>m!G?3kaP9O=SWus8V@q~p7SyGfjdJ_j7v{29PNg=6!K$Ddw3-eeS} znH<)wGBN96ids+eO@^3)vvI(YxZXOG2GB9q>exlje+s~-Y)|B#IM_s`nUe!Z(Lnr5ZZR4zA{0xVrkBJ zW$u^2QZR&`kL`8Du*Bxjf-#d)ZERuAv#B28GKS|)b=D9z0t)TV>uPN8Ru`iCxBu5& zR*6XW7!48qwv&?(3;S_iZ~m^Y`!Q83giuX8YFyHwqwMsK%$>Z8TBEA{3SBU;q*Yd6OH+MmSYmWD-a|J@dRhYzpNw?f!4yTS-Bj;GW;*+wls zh!qIgq9U0KO?12Iny4%X%XR3E;Upz%GzktrnmTL0QhHbB%9bR^f9M!}zu- z`lWG+#E}oaNYT4hPFtH3i_v$-zOJ~A z3_0hL%XPE_2DM4LztXn|#AxZ~{giD^b7d+@(jP0_U?-lNgxrZmbe4(lE6KT~gTDhH zttF>)oCMXY_#{64JHz=XAKpF#TbnwS5YPy?-(fwZ(A|MYR#bB8x8_XP5z zT!3>bj!Msok@)v5j!qsN>h9u4Pvv(RjtG(=ywL#Q!aZaM#~-g>FQ}Ah_n8g(pQske z0<|_1f|T{;5%=sWO0e3`6L4FH^v|CftBXf{8a79PRRcO6rqvR9xHfCmpkqmlg;Zer zj$h`%G$dtrEyR%4u^8An!17aC-1J&w;pzwJE|CHqQ@3(QXZR z4X7nI;rt;SUfdz@bEFlX)8_Z9NS$&m-Kqd|n{7gcH}^f0-h*P{Gd?ufY&Y*q^prxs zOc=X^q38LaG7A6u*~1?gO9>qmHy*lId8H;FNS%~I5#ojEnWH;B?&Hh9C{ky}=E^Q^ z4^V|(b7pI=x5zMV=X?;st`4v_{b`0U2uVTkkbAy|yAZo=G@Sw=aKn^DgOuy<;)DQ6b^;>6ZwMkZU>MqkA~Q1O|kU=jBN zZ?7q^z8UBbHZ9SYCPIbFN4}q&Qjt&u4nkS`jB|&QLj}`Q;tE(bo}bTsh1L4}Ouan0yiv$-+%X#>u> z>nW{oI=+Me0!1jo7{lWl-fn>ZfV|)!=-)J7ce`cioi$CVD*E%gPOIHwE({HnT^)aL-rlb5rBkCJ5Oh7!;4qt}2D=bYb#R&DmTa0o2FR_c?{Gur< zCi&!GOqGC<4`)IueVueoOMlJ@abY$?FsG=RT~*|iIEP)5JRh;yWIOd(XI|>~Pcv0( zFQ0DPV$ff#Ka(SB?*Wj!U8%Nx7D450Q5{J2_8{;T`2T72^s3V&B=EaXmWQxJ+dg8s zrN^(=6Yh{XW&CKuBOyD+_O=ov&tp(1P}k6A{FSNelI>n; zO+^=1(#Qh~Z7hhhUD(|)4@GSn^ZZ1aDsSt~qvSbFq!L#gI_o@gW%};(7Uss+X*+L6 zzzystc+wC6KtR90!=g-!^%8~G-sf-A|*-tvx% z9rRwHpCZMni)$`=1M&|A63VnZm*(vXDKs?l@qte{?pK$EJuK53#GgNHHl=s%XDrou zNlee%`EBoKEZP2jx@V^umdn){%jKmX8W!qJr{ z-)Us6`FJuMnY~qizV$$E4BNQoQGm@g%Hph-%8{=fWwN*`5U??RAsr1k`GJ0EZftk7 zW6``)eUirtr~-U1v-4L`N*zyMBQ1g*e%1|@PeiN5L3JhYgziZB#Cg`Y$p*&`h0;o~ zdw`=Y29^-gi;I12PMc}S3Q&ZvsHt_^Fr>#)oyWRjpCmO4BF9ICtd?HIK`8J9753HW zps!0$sgN-~a9K{Z!`H$Q8ESH716-%|i7*x8mEg`C7+VxkPhA+p5zw^>CfC4+#|P0z zHPuwbCM$3kgI1I>Rn{*Ig#HOQip8RZ(R5fQtodlEl~~3Tpw-ih#fy=@_c(yw)=1Sn zjo5Jt&9itHH0rTzZHnQyHzD5Y?n=r2me)RXh%$xlsz6y$;7_O-+QC3RsZ5)e%p!ja zBWOaB<4cLDtd&w^og8JqAwzDNd{#nxm%KzK6Y+AF`AoZ2{HI}mRI>w~H86#$)sj_J zmD#cG4{+l)3d6!V_#57ky3(iA;^T7(&UBZSI?%C%Gzv5vtDe-?z~O;%*GDaHYt>ltYjLp9jjrF&Zd zzB5}~kKQJrMb*7!;Z1J}^$#Dv<`-{-lR*=E1ulEeNO%`sI@>fR6D@56{uOGqvGT;d zE>-oqk_YgrzhJjtk<2(slk$5keeUQSejMdM$!FbUKk%ryy3$V*w-eBCOk5)c$J%p| z_j&Fbw+GY1a|uRs@StouwX2XjBLibF2vlF^>u3|XZp5NGw0Z>#OhF9x`Z4_*P6dfJ z(brlpF zlu$F0;?wuTX{(DRXxdOw@GKt3A1$GaSv#)~>mS+q0%0TdVO9;`F3k7uBo9?|)XQK# zbDsw|T5r}czn`R*e>{u{nr+S~U!J#Q6yo4WXlz!|u}qzX8%xl>{6vpR>kFm?pwBbK zl+~poIFVQzIhh7i;Z!dk$A?Q!ha`OJes4JitnLoQ&Bv16exUumN9wyT6^v4b_o`eJ z_fH@9SGLM#Wne>Un{3}Y z>JvPsPO;m$V9$_JpIa7t%YWh!R!1tWrjKe3+#C35^#3npyS5J!y0U{HRK?u(J73cz znSsiNO!em@raOv1)(Ivb4S)eA{1jdHjo(oqcPD9F3-~GE@@;jm4t#=k%pZ}vQ8~#gNvy&h*xq#f zs-jr&fW~DT7PH2aYfn?}AEdLkDzp0W1gXH}GC1vpBZ$YCiVk>q?!o&oX^h%QgRsb3 zZJXm_T_gr+s7ZxO4Zez4tYLLl+jIE51{5V(@0dk%LlpdhISQB{TS;&z{R%K|V&3JN zv@~eIQkDR}p@K9D&)GqKsMeLjQj~?u%omZAr`Un}uke7Xn;Dl90bRH9vD{VUe-##F zQZgK>06uW~zjySKrf$f8;vwDANM%ef0EaSm*&Nn(j3Nqzi8Jv6y|Ht{8Xr$;wSL0U zuXrWUDZ}_Df}ADl7Ak0+$mCOf&(7d<#=S(iHfmfg_%lxbV{$mF?K$I`F;KQ_6TSDI zC_hD{_T4%15OEzNmDr8qXfhIU-(1wM3XMdZ+eJK;KuUAQEYV0+-$OW;PJ@~btzsq| z0*MbKEsVbHC~qF=>t0be&*A)yL^nw6n@dt*g~^HN`sjS3kS z^F_C3{wJVq;PU&uT>jQDBf9qDLgs`FlOIE-VtztFx#$d9qJ*cOMj9}pAFVJn#w-65tz6{hgL?OPv#;~5v zuN!LrZd_+uQ%^cA=WqLHm;L$=LPz_7IhQfX{u-4+T<3`}J6}CAR%ZcrF_$DjFN*5FxaHGLOs-a9Gv{EbG;{3 zlwX}9g_$SbA39KZuw=13Mmz^t%7$sbl6tFSAq368xy0yen}trD$ zZCR5$cmdxI+lrJol;Lz6%zW)5s=AtsoEb2C7Q=4HDbtCDGbb(HPl zpZ1yFah%;_BxO}s{{X*;jF=Y%quF;}$=p4@)@AEgkcJwUqE8oBX5r_|a%c4Ft2Z%J!TyR(U z#C=*Mk4P_Z7B7;Baj+qKFo_eKPPx)LwFCpjol_m>@GJ^af3!81xaF;xDTe1NG-U)9K+Fcfj8Hq3ant73hJDD7WVx{wTr00h9R{qC{NX@vnHg4$0QWr zV_yM`P^Ag1{82xBB+x-hx0(&N4S$6KdnjTS7x~a!1_drnLT#YRxjtzp>8|M;+{#&d zvnPBk)s$w^lIxsn4uGAKP~k@W?Jc^_Wg@3G>K$B9{v1A3_*;|ly2aP!73$bA?{y(c+c(JqZDwMYr@*@f*Q(4MI6YHo&TPgMF?3a1BjQ{a<1ZtNhhO3 zNc7&y!4q97TejMzL=Z-V?Ul5}g4zQntnYrAYyJqK8vs$Mt_(`u9hXD^sKOknt#J=r zQ@9p`77ZC6pBdO2x!*@*s9l7Oa_!u`nT+=>HU_LD*=6nDL|ITo72shUDV#T@lLj^^ zN=BG+UAc$VUi>QH{wwOrkTfqJ_5L%WirILB^UYt4WR+&=H!Z*8%v_cINX&!3t_P!I zdP+;EK?iDr$)!sEm?j+xd0cri^=%>Q2Kf62WL9aBG1VSxG7kXfnbS2-X8_7*e-Xgd zP8{>gwAQ)*m2C4!dJWR~jV2aEO~HRvbOGfFp)Wnt@A(RxGGRZYZ@Ux&t87ED6!GER z{}%Ch7lk1`L@cBx;ID_e%d#R}@-KU2^aSq<8DBl=BD6KM*V!JiDH|lU-av2F)!9wx zJ)Voo)d+4UPS~UbxU^d>uVWY71@wmq%|+Mxzj)TmN@dEIG$6eUy$#wwKX75eR24F@ zF-qwebNZi8;+fV1RnM+PpXO{2q5Nb^3G=!qWU)PSZm=01f>_OkMl!U1PN_1$1o+@tkH*g@M#M``tS zGKQeiBkuM)Jl00JmS$>hO5qiL6JXAQqZ@s!*?$R|GiV%VM@o@JK%}kxwZWtwL4QxT zmF!IjR{?V%nBSG9_?#g&DM7DT?EreE&lJDI}X1K}0K9}d~>oj#v; zm$Xf=wz-=oPA3`wr^qZ0)2Wt7*8jBFgq^=guA<;OxD;gj{>Wie57Kk&#!EPqf#-Zy zQ|sXnBp?Du!*{I01aR|WnX)~Q+-3^LQVDPR8xfAIDf%M~Pxg{(%t`M$B%d5%mr^r7 zg!t2wSs1--S&0oDB$PChW_?q8-d#Bc0eq%F{~V`qXyT1Zp$>18(7zI*SmFCv-%lIX zwJQ%@oypLt8^v53a7dtHPgI5EX2z&rR&ikwQiGKAHVw$b6ss+ycbRXt{u{{{t6za; z>JYnjLH{mfm#Z`T@ePnM})FQKT; zM^72bN8GcEOIDy;&rNVF8#4{(C5IDC%KVJmQX1z&N6pLxr~b;p86NIaRtF1gYCN9Q zEoma@ZfRgcW7UrMz%}ITx3jF-mG}E0Ruu!Ud0afem3KqL^C$w$f<%f`*tSh-#Axm}R^Y)SI2GgT(;#KNn)gsWw?A~a_IWuCuH ztNVh$#vQ+Tg#*%VJL^Cw<0E+UBT$CH59ue)&obaV8cL-UV z%PTHPUpfI- zyOl;Zi|P!~Y-b-~xQrO;e|R2 zoD?%TNy}|38;LsZ@$}%#1*=v!41 z!{o1S)44DJ0bhv`!kHQdao@uK7pVEt&EDB1bDLmi?t!W2y3K^1&uWYf%%sD?;^$mH zQvn|Cl%F^DT!P7={Q*4grB5Z*#}+kg3AdwDyxo`1KtbcqvuXOdKxSyV`DC(x~1 z8$8KfaXp1@fK+$J4=RoO#|qGtAgSt-==nZ~SMr)wbvWg>(h8>MB3kQ>KoZDbULic; z&_gB%evr_oh@B@|Frn^tO;s_wEa; zd~wFlHKtE&-KnHkn#Q*A-A{p4w(!3rbSsrdec;*csJxc)e-_QYrDB924;1qqvD{oh z`--<{Dx-XAn_-bQKZvkAJDrx?WD)~hI#+c<`&v(0`J}T7v;h5?Rm(N9&DUQoU#@076KFVRI*JPrxv`Ahdk8IKNE{fKv&MJL{g=2FK;@ zGko#HYzC3h3Cx#}VLf@Qr1V|D8%*vJB~8}sXr{#4g%($1YDaa?lK8w)4(6b9Y)ba! z`Sa&->`Qc8TX^?G06y4?GyI^Q&C1TK zXblz8~q~A!m0eGLpn}%UY4*t)< z$XDjc zaX-6wGb#vMbH9-`6if zU5ot&jzmCQWQQ(3?*JOutGI{L|56X#QUFKlSDNHqGt6jy)58O?PiS9#7~?enbo_=0 z-`E%4>!WoKx=Ozbi&13i3F+v`v1yEoVTS3@{2+|Br~T%T>#gYmtSGxI*aj195PFg$ zCh137KJ=!lhzI)aPb8~e8G!U!=XF?><58|GOb3{rW&2xc$>sTW!906G^jd5USs)@@ zGV87I(|7y;s9Ue3m&p-u0f)(T5Dro(W-kC`FZiR7NLql~i>vYN(UXuv!GJmuJmVM(~~VF2;h2x^Tpmr68#(sP$TOR^Iuh#Y{^GKo+SmWb8z$6q^E=V8;Q>SBUq{LeE>36#shk<=hpy_RgO3@juR2DS`(TaZS# z?}uf8%iRm?c(Gi{4=>)_ZDzYeg~tiKbs&ZK(xG}F@$cI@2z7{hy;h8tz%(+GE8W-| zS2f*78~+r#i0MNPX;?S|td;g0mZkkDsZ9s+u4PEim4+v;bsSwLbO-LeCSCtjW$~SZ zNc;FrzOid)nutMVNfe>cF=6Q{eodV$Vl=W-qiuqRGx{Ckkh%Z$;}I(^Y_EZs?&|Q& zQT8xA3ShTM`DRpO!A(Ib)uL;GNM0#%=>GkJ&@16=v8^hWpccYv^WYxEO$yt_9J>dz z+XZmg%19*P2B%YE>#QA3!){BGwS!^#4anQqBN{z^o1ONdrk%@Gaa7b$uVQq^CgkJwX`o{%2ctqt5)Xxh)L z=#MNw=5491WKj)E(0bTYO_ts^{cjz>%4$kzVQcoj=edQ4dKsII&-@b_`xuLk!5}OJ z!J6)Bw5XtWQ8QyJvvPGe<5q=_*@&871W5Nq7PHIzl~t2>bCr z_qW6K>UPQYpcrPz6$f3%253P}Dxo6DF;&NYipiBaHF!Lab2J{{9tIdwDegpTKm~Io zJvmmEJ0aV~kV@`L0jcqF*k^b`U|Ov1K;m6Edm95;FS-)?-mofh|t4OQQK6ejst!5xk4sULZGuTIEXcH>C%SeB>*w< z^pUO*i|w90e(ay8v$~(5Ko5Z!2@IAkhbSt9^~Y;i7|HUvSS4jeqOc?0;TgY`b)h*K zgHfFgqB$xlPkB8KaZQG^yR}-#X?NXb)eQ*q?qKZQK0*2kmccOowA@~K7CGt+@o=Mr z$&@Rv7V$0h2(zU~1p2r*&_bd)QNn4#*u3dE+u0rB2t)aP;7^cEnqtlYPPU z5>$&oL#BNBwi7{E2F%O7O0+bn<6W>|82Zy>`rg-c@)E%5rixJL=S;S?gJ=FOoX)p` zd|z+MO4lcwO!eWwdvF0a_uq%ZAOZpI>0nb*;#n(57V29+_1g2GMuHrEBQ#>|TEaG7K0xdSeMyhV` z%t=(OkZE~$7fPrheJC^!N*ikR)j#wZqxFg-w*_G^!q=#g&q{7XiGinep-FPZiJ;8`x<;#RQ5TxfFju9NoEBh4$sSoPvEutSe z&eNs~#{8zRm*_zL0CHk5K+-pHF+lMp=H-^hsvR2wY`L=^({1DFB+G(KscB;>Rq|5x4s7bZ< z5GKWK-Ooe9b1^>aPB{@?Q=#B_zZBfW5>I@? z-$>>osh@=1R;}~6!E&xB?B2i?gx%q4R!*33m-I)dkfEcuCZ&;v+^CT2BMBtBHkG#v zZ{J0|!`Hv+vf_uvieQ8Q5oyjK2ynA(o7Lar8r6SgJhxE`KpEpW3d}F%qzUj>01p&f zr)r1GwVXvTInF9?bL_^%bUAFqQ8q5Soo5W|T;Iy?0z4Y!3h!CYnRa|D1IiBtxSwaJ zM_PjhQ~iuxyRxm^=X>0f7t$817u64E0MM4!oll zhibTdP{A0>DUO~yhf_mJ2!h1IYr>Aewk|;+7SvRfVXT-mi+fta9_2|$eGFf}XXoF3 zY~I9`<4jiZk4uN&E0?PdxTZq_z3-bkV)85f7a^mF_60ZAgA-6-VDBAD<&x)wgVX{J z`}4a^vI4yQP6C~ThOgTgSGI}7WnpR2W>>9hAw5agoRc{+n&{*^yI>&sJN;{vv87Bz z7f5ee2r8p!bR?D#FFGi#+2@W_(q?+z#lz*`54~*!VVi+h zj1HqSh5c3k(R)Kzg3OTVM&E%Nxgp3xezAQs(~$D+H=ooJ!E z;!KU837|W!N3c8EKuEJ2RHPVz_UKP?Oh=n= zvE=-_x!~Skeh0{(htiIUk^{E8}yK#ouFudyzgSK*B9znH8Jy>=EaNOA?mfj_RuD zlFTEN$XRY@Cy&mr)IsAXH#NuOZ(5azFn)&yqCPXlQ?rD8d>odx8%;w$W@bMxNT8fs zjK)kPOd*f=p|N|}E7#-Yt7c1hqHXA9M7j!nK+u85BFhqR^Pvaz(0c%!6f>iqVdjY} z*S;cx09Fh*{8f*Bgub!#0RKz8D}vH5#Atg;E&4&NnS|v>>V@gCx?VsO{E>?Rz)_?G z{Z{kL;$a)+R}3-?-no=iqeeN$40FBGdyexW@KW>TBLzbg!OatQaTs+Za#t2Bjq61H znFdxN6agNS${m=FQo3!_ccc&uPpgWo9mp}dd-sbpR*w0uMiyaIlR34Ol9h6iNs(4G zl{YO)QDy9b>gS)08F;UAjPV+!E2P7BBt$O~T^VP3oB-wm&Y zW7krxt1pO+J;e3n`RF%jwj?BPLWLw^t8nuLQj^*2e3F=J3p0at{8DPDt3L|n0lay; zpSA>RrSw-2&Xo8P-%P9|Ub>AQ?1jn{Fwt9ag?w`f=pFEVa*{pz*stXXs+~-<<4vDv6A2G!Av2P$VFmGGdSj{RH3w!E39d zP)JA_BNr2$Z0fnYO-kLKzI%!zV6p)-R-+h_b*8!Y#9QAU%~+WTBv4L6qS52BW5V?v zB=Ge~ENK911_IF%X9v9o&=-(?vUU($<~NEi*%Q~{?WxJ9wG#y{2+-Z!H)T0xHmX27 zw5*Gd!ci5%wVQqZ;;*C-t)#maYCdk@W2lagg+HCzz{X^%{U&6Zwch9-WrB5t2FCiBmY(@-7?0>a9EV_?L6}1yPRnbr5w-1#Qj{!b< z6v~p2jw7(v+gJPTK9@KMoCh75o{-Pov-IvwqBjal3ES%>!<+3JQnJ;K$ExGCEpn-N# zWDFTmb9+1NMyygEJiTYI(`v{%;{hln#hwVj%-mnd z2NE44ie1Ort5b*Nm42o`ul?o3ETUJ5Qr1w&2D zDl(D1kfZ#)=&aI4N*`{Z@0AW064jq|<_=KSD%$!8Z@0RN57d*ji`RePY!KDB*;|ZQ?OJJp$ILj~4GX7YrHD z2M{>c$fSLENd9taP%Zy0Q!N|ZHpGzF7dMw+`Ru-UetKvy;~+h5lIo5o zi%Npac@lsyCZ1rc=M=Xcx%(y|^?-#tfFjjFGg!f^-bFtY#?kgm+S5fHBU|o-krs z*&c`^T$~7lCBCO-qO9N7#S^TTCp}kG1hQy6;HEm`28C^cfSN#Huws)K0dBI=%%6i^ zDV<}+XVN;bdsO_%MBvzXKGnxHHb=TEI9U^3qJ%}YcTS z^X**=MCIf3kcU%YIFEYqr}*7GFP(K7JE;!RwEY%W#2?2&djd34FYV%{XL?vPBRn&y zrjq1b@|_cYz1#>z;4aPRR@8`)Tji+`Trp&{57?StxRfg<(tQ*hrk%iBrCJ5rj^AUK zK1A>#CxB#pma~Y3n%K3M-Fpl(AQFNqYCOE^>+u~oK&-t1hY9qL!F0v2EIV8j`s_WU z;LeZ0{O+~KHT1=!;t2+S338w(0k|TC5FPB_7WWPCteC&oa>%w5WkASa4y5iSfK-i` zBe#A1Lco1(>5ImhRC?s>#^XaPyN!8qT{c@#NySe($t8F{%0QAny5GpSvislBI@DVQ zVaQF7q5TDjt`$pwwp4^fYBc8FATVE~?w28?5GS+N#XI|F3#k)Xz3&80)W{okjZN>I zM6w$RK8KvOql96zOpKdHZE*PBJZVeo=`36gL=$27{y>$q`?Wd|bn$Kgd6j{4u8t#~ ztoJxpFX2g+7zi5og<&Kqn@&K)u!$Q*Fw9VZpJWQNUc6bldz@H!J_6?6?_D44uzdUh zU0wqu*BfrvJtp^c{hXLza3ZFryt0ZLNYnA9mG5uPeWoSxJ)BU*w&5FL=P#tqJ4*2t z{t$eNAy*)3!rfbsMy!x3(4rQP|QC9 zX!1<8TXv41U8Ku%+-c+4zag7GS-wR{S`ef$QJAMjgg*k`69(yH6G+r>*EBRIfm$Lf z=n=HIPmZsnm5TC6-u0j~+6=N_kJrj^>@M$INAjk|3$$rz>qNvAV` zVOA8VFY6irKn+#62K>7ks4zG2**#QA1=pE8PGmsL?qhX>KwO7aIH;`9@b?y^iHz0h z)R6H59&q{%ZFCmTOG*IfgLedcOy?cGP|tdd?kk;g?x|5F@q6lzL#8Y)OBg!uo-^Ut zAICS8qU25)wBC`k+WCvz$O!b;zM(cMd{_guZ$Ma~!<?sJDR0l3w)N*CJxyKbNA+>PASaFlP&^b9NgR2g8hw)8(UctQGSeYDiZHA! zAwB8)$*79T^(krA8zceH>dP3v`km$$r441g6_&813@R*>>JN_6!w$79SvRC3X2tKu ztX{$sXFBA?L#Fe)H1LqPNR)--xzN1)>IZZ$xKD-4r9Fw@#~*jaefbxL?P zB=V^z!2piaA=Y!g9R(twJ>steeljzV6f##-`l<_IwG?sQCxOcY0bqrqOz&8viGUnTAI+77zQL)svl3=&MYq9evS ziC^Y!6wm_K6|GGC?4JXEXkj|;iEh^v(YZ{SX>{sW@3Al$Of ziioj?WeqHyQ-0Jx1BI~J={y<-clbUOrU*|bcjF?Q{(Ek7ln~Vt^>>yWQo2*DUv0#~ z92MGcw6&+eP;b*v&Et975TtR8=yu0&rN3c*0pm6O^=p`?$Y8KGE(i%P0%n?+6 z0tT4?Uu+E!qaIKiLf&at_x}KR*CvzbkJwSxZ?v&ZIeVno)O`JXQs?o@LSLZ$$>0{b z)feV65ZX-bfkJV;KiiOkZ9`pDC}v>1FK8VkGm=GeO8s&iZ$drp!#8Z(5*~Gch^4j6#!_emcgo6n1sz#4{=s1_%3_sJzO9*`&jyPX!T{sOC@-i~ z&~m5lT6bthh}6QX!`dq{WQ2FL^ZMbz9U_T@?>eLZZTD0nrQPi%jn<5V1}gbEV|yli zY!TeJM1`$#MTk76gkq-qxGgTCI|KP3dRU|w%z*HhV5$(_N6g6B;yz4q(+J}r`IGTn zTj_AwsE%^^@m~(2$^}f@jCbyD?8`2)Y}OH~N@Cn{Up>s`y4I0FsxtZG)EPNc=yV16 z!#62`ZQdKk8a6md3N@*ijgl#HO)T@AU0N;yPSO;u$}`Ks zbn`z+@z6&&LR|i{nMM?iy6OIYAPZzgt-5nWsmgQG)aU;=5VfKO5SG;vcacg-pkSM; zjRX1naGU*yPM9OjA{O(S(_F_&-N^B<1TvxVkR%N@cH=bGeA7Lc3!!I~74QxAX^#D+ z0xp5l`l!a=8@(K|J7;-luvR%^H33fWQgq~>h;I_ZtcM!R}tuoAH$b+O8byt;m8GTPx!JwDamSZ&G9Y?)ZG zOO08F=i&nIHo5&8$F_?>oZ~u9ThJ6iW8`HqscU-(^~P2K`3c*)8BFY&%PnjL#3$tk z|L{cvxvq^Bmq&BDD!9dcQ=|I2r|wsyU0{?!q_7zd4R}7 z@e`}{Rv~Dp7M&Hf^f9sJQoUqF7c-b~x1Y(u2?87g1d(p+h;_|A1p>jFi9`DTLi8tr zRg`!pWmde)RN-VqBHxeZw?_04>2i$Wo!BZ=;1iysZiNywXnKk;D>wDxxfDpMkIMme z0JbYdRK`B(bLY$KtnXoD(8KrCSm4G8nLb$vw>^OC`}RQDK9n;d+BSpAUqfSJ@cOqx zWkFp=DidSJ@IB#sAhXNO=LO?h2-Qn(EnB3X)jEktrdvsq9z4`?uH`kk8|oTM0|#z7 zL@~D-rVcZwJ%Wgb7xiOwpv7S7=Kr-#NHQV(_Rict=_Y#L++wJqp=_K`FAm+d9C>b( z?39(t$9xzt_6EKVcIC6rCBAu({E8;!*3A%m!b0$;g`F`pS98MqUh?9=n`*igxtaV$eR$a$4rSP#8toQdMJ#sDgN?vW-ATvR25Hi|#Z$dPL^$F-QzS|v zPgws~}0AsD6KICuty?F{B&ganB%LE6hW(6ND$NBSsq);cnUY{Fxr zlx8I7J=Hi45JDzcLb+NV@2u7v?TzGsMcwX807s$kWEIe8n7_UPf!(FG?yrFs2`WM* zLEAO6%5ld(NIvuFi$zN9#5D%u}muDxr0SlmIdmhSOtNaK{ z$^!!P%*ysz_sL@Depv46M>0BTDHBsm91eaeU` z@+V-P7SlVfyJpEBclVUINRnHd%m3_u+7XXZF2?BS1n2p^yCUt7=yZy2jR-)eJJQ<( znCW`CNq+aH;&U)_m!8gf&DDH==44BoCNG zOmGLm2R8I^6+cHmwQ8bBFckNTmNQc?JF)Yec#b3V2?ldDgRZ0u-O`ahL3LDi>IhOK zNu;Zc-gne?Dlx7u$f1{dX@8jRaC;m`DJv&Vc)oJO3+SfJuAhFmt#RScVj9z*d|1LR zeaEGAlS63jR#m?%$|)D^BWd#~pf$zz>m4!?L(j>VBwjb!&iMrG?0y!UPL;x-WJ)D? zsaeRm2r0S9*y}?JbJmW>(BmS{3w)tD-bhjt{`j*r ztt94K#mi<-rs{#1?VUq+B|x`^)8UD2yJPD_9izh&+qRvKZQD-AcE`4D+v+4=PwxE# z-{cN%&36rIt-V&&+Vwt<*`wM>;pS0E?ceBSC>&Z3wSqkaq|f3QM20WCQo62mLdUcE zA5STro3rJO&sk!js#{YLyvFoCd{K_RRTFRy5aY5E#dYs-{HSneP}B9EMf=EI-fl)0 znnC z-?*pk8j(!9A7cD<0O#?Yh`WoRa=KCqW~=vS?2Yk^PDIm_K5GxU?}3lu)KJqYeHY4{ zvgSIFe2^IK)I0t5p6V@09+MouP#sk{v4!p>xjgl08S+rr*3mJzsXexK!bc)Fg9{1w zch*Q^OH2N4$=_x%%HKp_)-Vw~pyirxX#WvCr=CS7wi-%Q7>xcJwJ+Q_)r>I*=>Fi? zRW>~tl$V_@vRPTlvVa)Kn7LkF&ul>~j7Gx^S-9Cw{g>|#3~ld&mi1j+;UK8edhWbf zcqpg#K4o{y-i~3F`la6HtNkFPZ#dJU+B(UYaaJ#K$z?h!)JLB_$w8BiqpQZdhNJ|> zs}^2iXUPS0u916%9vPevx?uC3f72$kC~!f~)y>ZK0Z)i`t$pA5yZ{&FmAqi%$S_Co zY}=E4-euO`?QcjN!K^RC+fbXHs!RhH?r;FSzM>~kF(+)dW^>$dc4IWevi8BvYJS3VHVs~XwJDwwj7g#v^ybOjGG??W7koe$riG!= zQb>!I^?=r}R6Nh6FXKx>KAfBh&U&t&*7Y)}$rcQ*84vhy0Zq(t$KqI4Q%sdN@BI3J zYiEtP%$2YkWeR2D1m`ujRqH^F`;;DbUxSM}xIf)&bJSSilmS?tqghc?ww83ag|zZ? zCH0O_)48c8b-z3_r9u$jv)ggdR%E=Z<0k(6=3QOICf4_md4)0n>gCH0GlBA~*Vza$ z-gc275{(W~-AF>j`*6tqr2yL&L;u0dD03Dbh91rsCW`DxKox!SdsW}udlxZhixa4# z_KL9_{ zpeq1C*lT799wpWs)WTb#n?w0Zt3Hs%D-N|rLFx=;c#VF91oNVPg615@D;xER-{0%; zv8L!%5uN-hMU1NJ6XG^n%aqGjpwlc*o{k-&9iCWo>tE4q14A#jb%E)HP>*JbUF$N}sa~@^-2M9eh+TLp5(n-dEjIadjkkd9h%T?<$J01{+(a z!t!dpO%07+=*xtoO$-4sJQ8-+A5;j5kH}5wb|q(`EMqlLjXb+FEzFJzV5b4TXJq4f z{80hy0aqV3xBmPA-noNmfq{`jSB@Pc*W+htR+ zCwe{CgOG6%!zi7D84K;*%mLm6B{{pOtCN40j=pc5B@tiB^J`LkPYi;rRp_DM&e}-B3h|t> zU#b!(i91c)`!b;$I-6tC(1sPc3G{{;k>>$(ruaJq)ZOz4V5)~G)xQX@h?VHmXe08V z@s(8-aBuxaTFhRe1@3h;Kp!w^`rVn|AHL{IUtrD2mNM`~$CCD+BV>P6eH&Luj6Kjc9ysBGSU9#JyvXrAxCg+O}=Gr)_K6nx3|8+qP}n zwry+Lwr$;>ecpZUxhKAe`}1278JSgy%B;$#R;*a{WC^k&;}1YJ(YG@>?gX%ZtaOAl z5n3r=PZYNWx_r(glsr>eoI@)Y3Sg#DNkE-o|`J(E+3K3c|*#~MgjcM$eLvHR&cxg%-Cp;6hC);f0-5j)+8 z8vOFBKjGF|KtS2}(6_>XX?}-xv-?k=iZ0Zf)GY(q`&(ebV2VV?gg@eI|H%&ZnZ@_z zby~dQ`)xhcZCf=zcSl~K;T>!zKb8iD#dWVXVlKK24hUFs2R9}a?5Z+KPiRAYT`RaS z%Un`FC(CGRqm%=lY1pOi^Q3qY($)>ZJu=}CtZGdAF?EX}<<)QWrQ}r~=*i!!;|D3d zJ5|M2%2Hq<=nU>@UP~2}!rm+%86BGo(kOoOmw|+@)Ys6Cz_NJagi|9NI)xkG%UUW= zAlDnmQc#;739^?c}->GF#z z<@R^2O8SEsU*38(UqzFva-fmb|77lJOmB9JT^Eq^!>2?zv2feBd>S6Qt_0I)z4)mbE)PcyG z_b{^>^a!MU*LUb_qwuCm+n(_k)fx;;k7FvS!og=`Q*e zM*$Z!j+r@{jMfF=tVavnl?=ha3(i#L&GvM52mSKl3G4{m&nqvou|jEIKOh9oXuT=3 zcDKA{zIpF!>gF$CWhgDpT|E=ehhuu4=L;jueJlksF`FZ;xo%8QKFWB}y5jD0E*yPH z&cg$evL8iU25>jNq#5h4p;mlof@!Sh*?1`qL1lTeEDQVh%gdE zxREh6+EpX>f~i*Jq+9N|hV*F}`3-AhHdhMLbSV$$XnKW@m6ULHQdsN?!^g)<6IBmY zT3Ov*GooJ7u$ZY!sVQ6?&eBs8GU7F)& zleU9$Gs@CPlXR+^g)sI@Q9buo}%hBojZO*X)4&?>5)VWn|^`A(CrCm z2`O9T1~-5@du+Ai0CKmKmqw|K8HlNl4LA!)W-Oq@UOkc0zkR8X^L`0>0tVT|214DE zk}pF0^Cto*oTmtrN@w6=D*+U;#d@tr#%z^B@+^1Mc(CT(b<}0aAux|wZ>TZU5nI%_ ze@u~ggSFVm4%C^KklxML*?7L{L(SivEXT{O1t_?;WT@_$Z7PmqLAD}b<| zp2yrQSiBX>;Y{~O#cNPcBJ!M2CWsIPkUdJab3hI@;l|BSao}|JNbKoO073(BA zEc#*PA!nI7?p3dY*C-5wu#=-{ke5&VRM@(j8MwV9d$K)ekBjH&GMypprls?>%ko$Z0Rq~rr& zV`~NGp)HZ^ue0Gp0>K490j1rY|74mS7E)F+eCZ{UA+Dj$ZhKD%x$+!R+)tkPMQiJZ zX4(ur_|qG-YG?p>2H1emK@ylWKi&mP@|<&-(|cH@^RLDOGh@@ zrLv5VTlpr5N6!hlqPr6qM`bP6z8p4JXKhel{gnP!eNH@Z@QjJ%fyfEaJ9Ba>qUxic z0bx9uzx`TJCsQn7E_;yfrpdJr*d2Ir#I`e@pP+h5yE&ac>S>LJ*7Jbs0o}sPu#rYu zR<_?o0%Yq~**9+%v*l4@M32#3YNE0Emg5j$`b=K?pdo)zH$JciMi~uO)J!X|p*Ac< zjU3i3=g(@Z(={Z2IgYp@*Wsjx$3_}aR0hoSPM{O|XqA{ZWm9>XneC9J5>(_8lM>VG zUXQ&oiKlgJT`SmHQG;NG9}Qbbl&cwmzSQref(&JmtO-ba-QnaLi!S`Il@rcU8k%m7@x zRGA=Q$@1}PK8An_#yF{;9!QHyhQMN=v$vbs6kdA#Qa<_}H%|3{=W<2JKPF1>_nXHs z2e`oe6gKd-k~hE7O&^AaqB7^w$&ya?1Dw3e5{5lX39pOR!iEE z5aGQK7kKPo0kx3}n0KS!bBJVSg{R{vvtmJMs4S0jWO$RLYQ>rJfak#@iA!a`7`*%} z-#LFszXXfcRH(T62?b@t<+`wN8>;@y`0%fSVMpQma4)t4m^7PaNtMr+@({Q>J`Jz| zidvBGgB_nIHG1F%(aYg(TGoNM!h~(6&1qs9?_MPa1EE_+A=STNA2v z0alahyrAP!KePc73jKi-O_DShiy+$uSNjG`rI+^>Mo|zW(O$Ez6b$%_ejoqkyRwHa zQtt%>L!^3K3SX9woMZ`+6fd{9m)2{m=*`|mj9aFjhV|-6sW_hR@@GK>bf0Cl%s#HF zC5`>;8i*>N?r(wW9_3#}F|E9-y9^a-q`jUQy33@#{jwe}6Ear?ipT{_iu)j0+WkkT>Dhubl0MJS#tBfp5l!Fq| zZwJ}v<>A2YskZn5Nq^JfD>~oL&ZNyIs{% zIKYkFqYpZnA-p3fLgMJ^+PGCT$ofK%8nY|kL45V8#$D~TU|OuKECK9mB+|4XMucSiBv8wqedr_!N{eI- zclVG$g-a@$#M~T}mSEdjhAMP%u<7suXCytO2ppCUbu}EkOly?~qB`uA?Hc4kHlg%+ z6*)a~YQNf_tfi80-Hxs43?gX;hE*15$^mt|-Ys4{OjLu^Y@b&Y1!JwR@u7U~?;dvUOZltLcl)LdElS7P+YVH6zzqso2$7l*(7pl@}CFtuj~p=qGdf6Ki&+- zC-f~YdTfv{`542Kr&M!WE!0n)(5Qt(kA8-Be_)-R8l2n5viK`39=@ORwD4`ZEpL+h zeekW#{S=*&ikv7=K2-I+j?r)!(!Z}+|3jU&g~Npj_aI% zNNCGMNo7LNL<9c!GtK*X=n9I;!7uOPj?hK!oMj!6Dum`DlL^aKWDlL}TfRJWHHDdxEM-))miPgeT?%XH0d1Vzg4RBTB7=2k&^xLR z`E!-J-560--k5Hw*AQ8p^->lqO479P-~u~2R0~f3Fz7-|mv97|&5vWe6fxBt70PLp zPJ-OqW{bAC)-&=_7Xe~n;eDJ42Rp$ToCnQPBs8M5qTcRwemq()p8Nd7IK$rAt4rp9&E+O^v9v4adr=S5(j0RwWr!^skJsT(QlF%_?2%Eg%<`8cg`w)o4 zwlm={aoWZ&{~eQsQfcGbg2u$L;+_tofb@I+t!v4{hG z-Wps=a~C=&4#e1PK$SeK4y|{4F=P6lb^9L(M4}4B%H2(>*!TQuLB{xmuaHtOV>_(# ztYN11OA870^(-DzS0u`-^;PjHb0D0_Ymml_WUAc=hr@D_WXPfw=7NK9zj=h~Os6H& zb632ot0?$N6vF4wsqJ`-bB)ZeIS2%&fw9p2jPV%jcfgW(4B37~Rfai)R`I3ojBJ}b zbM5bRYDTwiK0C-Xbka4_T$a9vu_t^&)X<(_#QB!J^8A^sUU{-3SY@y?(Ch0H85vb* z#l5QPcc|zmEWS^!y<9~-aE^o(=u$p>cDm=(A4cQILoI~uTnxyGF{0Rby5Mv^aE%#| zrOZzhg7FnzJ2-tH;TcR`*p=VpFixTcmRqfH61xt!;3fqel?fR z-f&_rsDvNoafFholz0~(ts>fsq_@N1gY$;Ro@G`hq{{b;=seKUSGjVyioV*B z&98mcep(Vz`c9IJoP7TU>$m;Gp<402^65rMEx1?z;rl12eb6-GT>&`|48VRDvWLtsp-T&V~w;j&(eE=wWubD_+vk>~`a< zY6%1%cny4#pR+Msu09%mR5~??>}pC_#Gu&FPU^;aaUt2L20M(`=i`WG()ME|x%$`U z2z4pigS~0n^AD=5z=REo*quudC!ZYwmTQ4N%)Q>-uCa53RQYp-lzKg_GJbJVh zJ=YQdymh%h7f1w>+Frr%*Y9}S=df|l=?VV$;K!R5Ht}4G=BK=y33ksrj`tqZ@N=Fbwq)J^N;8>)N6I`$6|xQ4O@iQ?Qag|gqj}A zP;3^gat!>E1>|G-nHR!qA02<2zp>B==f?c13gd?<`{Fp6au8wu9nGa7KWw<_Ny%=M zH!!{M6vTLJlpmEaJ8Yo7a({@a;5k3ur59fl-DHWV{(#fdEvlFm97S*lG=<0ZTox}iaeC3aYe(1t<%U-y> zUBQBs@e6wg&&~w-4}F0zT=mbT%L<+Xc)C2+5di0!mLlcV#q!=RP#2>Q>dW}GNu;~^ zP(q7J&^uii6Gb-rIXKfPOlAAtWL)dg**`|sKKf6FZ2Nfys&{gVQ$!eBK)xA4B#fJ; zq&FaI+1<;fh+V;&BZnbfq1X%~Gd{OgBxhTN0Vl9Gf^*}6>s9BWOlob_4Z})lEL{04 z!950nX492H@#i(V7jk`7juMJSALd}4Aurr}#YVGXHXBnKh#`k>*#qS9qxz|%AEiG9 zrh{Vh=ZNS3&{9bo;&r$Y(JXpwYyy})_8xy`&3ZvT;JnT9$z3;0JoCE6`6Wql>Qtl6 z;|th*+(0y8z=o1pp?Zblu+jFZIMoG|FzG)>GC{g%#MA+^()+-khM>jn+ys?za@bV5 z3PJB;lY~MiXjLFlbc3rJMVc3ks>f7c`cAl=(Z)s-Mdp(_(25^&dA9Oz{uG3idN+=Y zle+0O*Noy|+BHKaO=wUOTq`CVy6w+_3IO}1AqG9vwEcR(=r z)JlU=xN++|LI~2&BxW4IQ-97&186oo^P~cflTOh{Xn0{1wT(Y{*6J0Ca zp3ogAXD370=#;c~Nf@9eWr9dc6&O^q$i0AiM|O<`R!hr-wKZ&mY0}|c>)_0LpFGx? zwJYGHocPQEoUuTo$oVVaa|t8g4o)z0pQ!mKNO+yN$H{! zoyT~yv)Wnf0F3l%!T}9w<#BCa*>_6DJ3rRKAIcDxc_b$7bJeQr>Gp4`F)fdeM=pdt zOXc@N6BZxX5Q)MAkl;qp$g_H3u5&R9*fa>oiVrlFE#0JT8__ zot^kkh%C@mrhSIOX>~{JIozII>TE5%`dJWkRwR*yd9Kj$slr(6F|TGnFT)=YzMyLS z%(vp_h>88&z4m$aMG8BNA>X+IMzD^i{oF_02jHrbjEdC;!>$^Q>$b0Y$bIv?69yBgNN=9JTe#xibkfFeUXSy?Pa0PDHlMb0HDM=oNMUJZvGhIt3}lUAI^I zF}^2rp<)t-Gk%v-eZ9lq|{;e(EZ1yYMO@{4)AY9ozf5<3&x$>wI0= zosV_LdxUoVV*Opixor(7Z&jqwC`=@CBhkl*M7-CqV}RYW`qoKmkspwgL$Z1^HQJE+Dv==*;hn*lj+R2| z6{Zw}wUf;Q+N#;Zzb9{|E(ip-fE7DwerF@Vgc8;C4xGdZE{y?5 zt>P|C7zc#bs3MGxlt#{&ZICDbT@uG8PAL;y7HiiPUJ<6D%dvG>r&#Fm5cRb`W+5J`9^3*!*W?;d zv9^^P>cr+TOO$2r+-}o^PE$!D!%HH!!NOALXs#`?MWltM=?G6$-2IMWWQy|iJu6{32Z+g%gN>_u?;HPdw9qWzD zj1WHr6h`A50!V%+j}a9?ow;3&eZ3)?MKd2hgm98WX(+ka3ga7djUQF>W52K5b(3rm zj&!}^z1H&|sG8#>3}@3&$n%Kf$Ac9@uU%4s>d=|FCIsBn_d#Gx3i$N$4iVhgqop>Z z><&!6tS919;!ADqPuC($lt=FwaeZ3r$I#lKvRYQkO$1N(j=mS=VnL=X3OhnuKINIpu4kH(}PGSUVZ%kalQCEl=7@|{* z6=1>howcrjTmaED>0Cb)e6ShC)vUpu;o-1OOk+{OCLIsW-n;Oa8N14{`Ng?Lsu3~v z$r6;7v`b6;Sl$4|Ss|^^(VdeGwS{X7YAwoX=E;A4+Ic~K@US;3dpMq~Lx%zdoDR#m zUSVwR9&A#sfRrVqrnn103rSWKyDMyHgDSxab7Nc8>&5H7m@!wqcPsMgOErAfl$fR#P z)|E*%V`;v;N26@m1^38n`0p{nsJ$Tm0Y^=AY_5GCYTI6W{G#V$_&PjFZ;QTkh6{j- ziJcBouv;+1Wf#Bo90*B}n&4f5);0;yME_)2y0nPh5qCs!39;1Ki|;XlRU=h8Sf^3_ zLMtIur0P$$UVE`0QbU!$JTwI2?6_myyk&Xv%emSlU9I=e3j-&^Ya&gT=02t=-@b9c z5Y@DCbFl&5m&laJI;hi*8?iRTsWXnEsx1K$Uri}jDclc7i`1|6`g|Fldkd8OM3blR zSjTlk6tj^AyeJaUVI0A<$`SU&wWujHkF$UV?WytS(i<3IopqSVO@bT5JsW6OnlgP1 zKWuTp#z3NH{Gnc&8?9DQB#gEDQ{+%T7G}rr>eSG-aC$WJR<^e!p(~}eC*&6YjNV(1 zV9Cobc#R~*BOVR?4-*xO-*zr#JDY>D`zqzmxs?~L6>iwE(=;#8TK(=-ohiAb(#d5{ z0TmjPmpg2_$cU)`qp~2``XPsL(H}b_r&}TpT8~o|MYay;_^+`o5MiGk zOle8wK*HcPa)1o4;q{Gd6_lUOip+2XL5^V_NATJkXn_HqxU#i(rqSl1ht+VR)$xrh zVL7foc^7(#2nu$c{MryPfQ*wJ9`o2NgZnSPN|S2=wGiNqt00`05#;c~)8J(4BdEgsyl18^1>CT(>AvEwV$D~{2g_;7 z&)=bvHS^3u@BT3kre}PZ{r!ivuu^kMY=W|#@8b<1`>u9BJ#3H)M1xx&q4@W4#t`lf zd7`SXF|&c4zyLI=>DfR~mmn@OSn1_(RzE&gMP`Lim~x^U;V4OvrP(19-69pk*0{i5 z&_3gJpm2_KKEj$xa{Xou{w|xH>#dO*PZo22SDCI=VIwSXqFFeP_ohO(zwIBfu2Mn( zrGLa%QgFOc>a9UYPzrcYF$f%v9=nk#jAXG$H+FA&hBn}cYwDOt)#1-| z!E$jJse>_%LUKE0l0{+{d&ip&}(2-$6*gUmu_bgA)b!Ca)WD?nV zbG3G7Kt;lhp)CMcP@B_2$mQJ5`=8~N!^6cPuhf9W#o&vp6vwi_f9Cc~X=QDY=aEcGsw`0Ghgt6O^}9Lz3ZSt(?BF(8oUcaAspa0#K4{B0pjd+jQ+iBQEJhnM%n(J z6E~gK3Zq6atK2#4WgIJ`latHyOAB`{R!n=i)2?PpX|Lfv@i_TYZ$%V_rvfyLg*$WOFM-4==*ip%hj*kC5ug1^|cwO zqQkcAWOPtvO#_&?r~8mWc(K#bKpWUJb;$R_I=R_?Iw6e0KgqrH$1QklK)A$^$g zh%28IP-rnfr$FA#7!FS?AP`%frE5_J9Rr)dn*Ic6Ii=m2wD8FPIPGV{4Op5yGSDw) z{7Qzt?5;5W{DMvSqRa4&Z4C9zug{G1%|~7L2EcB*y)m>huy?RC)U|~ArmXeMpcq&Q z=n1|FZf-gSR~th*5o;@lpN97OcBVEC)^>CP_WFia4g{;6B-{&#-=XFPxX z{M-IJ4{XeA1dOcz6)!9O_Z)x2-@d;*=5Lw5u`vCW{f|5g+keUan=AkF{@P>v&YOSX zZ~K3){r{vn{xg67v+pnc?>zsD|ILH{6aMSh|Ed3PF8qc68Snq5|LXl+xBm_Q=EA@D zAHDyT3;%8FZ=Qe0_)o6~+uGXp#sL02$K}raF-fBVkWeOZs=&nY(tQO$q#~yxnIKjGP-S9lNqwJ+ z!rIczdP>xuiA~6B>E|OL`le>4+IMnh<5z3)fDFJO0Ap}@{c&p+d3b&KU~iQM0C0J7 zbxGr+E2f?~Or1*ulcU>AV03q%!pz#p@=-oGkNL?is1CtFsh zItLp-4|PQZ)UW1jTC^bAuVtsEcO&5Q$u3gq^GMCF(LuJP9X|Rk4Rj$%E@PkY(qXn) zJRJil`dSC48ixD#rVrS|ZG#s&HjPZ0i;1r_U^Sok($?Jg(8$vIJGKe7N4}MpEA}tB zkLhDrTpSDTuR_Z&y3()P-nqe*g`o(%pwO4KqT2ChOM6K!j395dpJP)Kcs&Ep)@`BX z{oc3hQkkEL1Y_QAL8ohwLdfo1*s?yMrI;}O86VDEsX!E8(`8cd&)U?tUxJ}u%24m! zzc;_U2S2h|Uaw*c-@9?Yq7PrZ1;g7{mq##Hz1VuZE0ey0Lvkw%Bagm=@oJEeN^puB3a!zBcl{8nO!OTMC0qL;VWFYe9P^W)9ttzl4<=nHU`F zY8#k7@MgU&0RV83vFE?GOI1{`)Ym*^k$f(;Y>J%7zVaKtQbWC4C$F_@Kd^u9xVvd8 zaN~A)zOV^=1b;l0Jx7o8nf3KO;sIE5lEEnf;4+b~Jt;6S0=6uxczkI~y+a@Kt-pyr z1?Psx7lQM@aZOnldgpyaFL`e{e1S)#WY%_$^37MB>zNqeb`pJtU*kj8IykT-B7MLm zrpAWfxZifq8=s%<-*+Z_HiC5Ne@(x2Csme~2A48Sn8MuG2?+3Az&?%#8FJqEG_kG) zD)OrDhE$HZ1ZyEp&d(iAV>6{fj7uep6jx@btf7C`U{J4_PuHy)dZ@dGJ{35p!%Cw8 zzF79OYn5gqiGTN%n0QlE%X0-{rO*IvZRUbo%M)PI;FF0P<1o0cte( z<3~6@*X$53`jY_xudGPf4=y0H3t1QG4F*2uIqmn4UI_?NriVw0!u>J zYwk5M6fZ7)RxDgJwpEoZt~=`=pNyK-^2r*9)(W}`Y} zvUxdqwF$`bjw!?7Sz#`zsWL! z9J?{;z?qnlICZ7Qht9E|cZ5UqcK6WOj}W~rZ4yRXYf;)Xsb}||U#4m=T>xgG8kq;? z5lvib1s}{)ZZ*9aHb3|aZ%VI0H_P8g7$S9b+tkJj^hJ9FH^WV-i15Zq$A+8=qYoFg z4$C@i66J8Eh6vLc=6!;hw$`Nfmt`flDJ~~$^O=|@ROpHfQeu&%3-BAR{>NUgnGJJL zPv}PNRH35NUZEfbcqVNFFe?B}> z@({`sp5KNzrx7LivkA%zt+wg6s&y0}fQ+;~5AFi0qFt1@n6pP($ zko5wKKf_|K-pb-vFL9(V*sST0r#;)$0)t3`ekpq_pmj?+8YrPvDI9Bh1^zHwoHn6b zPiITtNfdVkyt}roC+h4L8M(U3hAfMvSTPAWWlJGz_wNr7LF7*1>N&y_az0^R&0Fvz^9R~4r(-v^G-XK2_gXQ((^LcR78;I_ zv>$yEp7X9Y!tvqyanZ3`TLGGo*ceJwJw1E=;O((ZKUq~siq~bUW666EIzo&|B1%&+?}nEtxc=%< zM5bVOc6-J)%|@gvBOs-w7dV`&uFcYCjFTVRYnzD;BYSBWK!0a}C{CU#X>!DU`>aRZ z4##s$-&2Ywr5^gZneqih43bLSs61toHz@?Rti#!W8^dS07Oo}fT|t&6X83|Wa?A^X z=ebOH2BMaEF=E;CArH0zofTpr{vXPn4e}ZOylSzE?LB_74u)s3VjwaST$35>{P(>E zMCcuZgi0k(hSXw{iuFpkBqiDN>uHob^Nh$2e$Rc}jW@d?!d<%u{KWD4**BMw(ax@> zh!$f-Rv*f!iO3s)2z}Bq9wkS7n0xtgKMv0-;531FU2jM_)QeZIT57e+lXRaz4G2O@ zeK+(x%C~9r6Or*Mpfv#Wy2kRX`)D6Db=lBz zu0Q*C^`3+Bf)}3s{vFo5t)mePVW=6{j))ieHU-jEiGxSKJ%JncBzbT=?(+%|4gemz zTZ6vc#uw8kQBWA`@l;QhVl)MaGt&vo4ONW%kMg-nLslxC1D|->RS+T z7$-hUN2vNO|Akz^btkEy1X!bzh{&R8KOTgJ2C6$Vfv zshploqa&Vw2cp&zled9w^Wt@M}O_P0mXF ztc_J%2PMgyL|}pWmwO1OcO7iZpX(%`ybp^d&Qj!8$YCd~LNAYrw_N%HOC|ZMj9u!s z<+H51NOFA6j8G}Gu;XsY41y@S*N5w`KrWe}fS7k^w(sYRCMn)p!MyWNUaCgWVH3FX z-4P=OP_>g1AHa{ptr^kl0!6vA(mVS&U*MJ7Em!6w_FdyXQo{H~A}RW8&I$MN@!7`P zUqL}D*2Z&#vs|tS@?6db!@%cWpBF5p;>vC0*H=ACW$539;HV3CiT6tO+vZ|)ib0w5 z$%Y2+%{eUwsp|d6X&o#kcDXsZay*orWq{EYZ-lykT@zk&6WVqPD{$2=BvBVUxyFUz zIb}%{gtYr7V`tQ%H|CHdWWUbSui}wGQWv=N`h!mD#+F`3BVYOnepc?Zz{3%*D*Uu) zn~MtD)a195s#JjA1=SKnm>7j5?a;)NCbYY>dXPbs`(h8X^&yBWs&b3nKho)F^{!=SSmZjjM+B zl0qbXZmhu{#I1GH+r=4Ezh^oc-o`8eoAgl4I`Onwf3T z$sri`fxVHje)L2|V5g%&7LyZPTbq=`&Kz2-i0wWfL@2n(3vpVweQHDgKGj{~#7=3C zvw1;@)p%Uc-iy|lHjL944fM*VJsdGRv{1S-B3ZvMJI?x^$@&tV<%%D#T1G8a@l29I z+UX2h%Lr8C8l32?bMBnBIEe=QW>Y9V=^h#0^^ z1QjVoGa2>q@l^&7q$kVdHqAhXJq*ZV*Y4q~z(bsW5`M2YTDM}UdHF5R*{lYz2emYn z&Bc4guLPDI&uByxHGt0?k0boe(gU6Z2l%J(X7_RFzcPgxZN0MLv^<*viwC zFr~k%fO%7Yy+gR&-B^ab17vr$+N#${(JQTgI{1 zP=8mer2HMH!7=V;+7`^)T3Gry;SzPBI%LKod)>g^=h0OwEX_l34YJ8p~ys7iT z{*ozAm;E750(OPg6^Ua}gNc6e65$X8J0ol&%;u_l8=`hJ_84n8^*`IB;oyM_dYyeT zisUnG*<|N&e0AviOikuLu&1?0SQ4K?-l*P{6G+wOU={PT7+qub>B??pklHJKN+DQc zB<(@2SwK^A?_VW_J@Bha8N$wiAS;HgjRKHL^0NnHfui3XjQ4-)w(s@mcsb{yw)`T( z5=)6&T8oyKS`CuDJxC5U_40=B5(D^{=+?#>;mB9(LCXN{DJ+ zngo}A;_8jd?s@j*cM|skOVRHEHEp9-v=03Kz5h%E(y^d%>-|3%~Z4Wg6am|-Y%t&sGw#__Dow~7K)G&4^dI(txeC0VEP2xY?$I@KK`7wJ@00Kz5tK?kAI{J z;Nc(mD59Grd&4@3>VCV838@S(?b0f&E85)1bq!AvBC{cBktcr;^Z~j#l zMfVIwf}c0_x)}GF-}Rm?YMPoGF`&JNaj-hK;u5_{D8GygZ1U9^`_~)ul4d!#qfc6T z@tg7`f;Za8zDw-ELWxF(S+(ORDnUvW7`24p<4JqpOkqX4bYPbQD+>;LalhGPLO0*# zPVp3pjW|)CT7S?CAMWzhHSne6I@^8J$(+TfrHL2Vt?i zU4xW-Z>k%u5S%YVAcIkfzaW}LDcc_a_~F5?T98T>{Hjk2GE>C5TR zTpg+(n z40(ouqRxLa?1!LNmJUf_H;!T9z8tlAS#@exWLe)Lh%Bw}ZuoKdf8Ue$@~2nWLmCPo z2vH%L>2@AUxCpp>W_YQ!{(XZEzQNCjJjCQ=FvYQd>l*7FHhc<4; z>+{#ljJGytOUq~&F`SN5+%a9tnz5ZtqPvfOzg`~5N?{=@1$9YDg9VYD_;{`WzcIbU zYi~0M*+~cT89NI91j0QHzSQi`;YQ$@hZk2Q$af2S98bR3RWaog?JtKz$-kI1XyC|y zv2?eme$Bc?Y$Mj~^9#$k0R?+|RJ3ZUqEW!e$Y-R_RIR>xjh^*QGmI|0$UCJ`|_68L~f< z1ekY{>snURPa#2ST&A6>nhTB$P3^fZO*{7%-4C~3V6b*ii;9>la%dt|({mBiaum*fCzmnVRTS0EDk zlGTYG&bR%;`dLe@qnIUD!{C{aN83irLx>NqwKUuopOoI{-)0LYEjdkKjka5Ys~?#e zC2WYL-&=(CAP!v$G@tAtr6Nf1tLU{d3rGWW(~F~_%geb_Qb3w*3;1K}k^KY$4eOD9 z8MEXGZak~uLb>p&(No}C~O@oErX zNB2CW1;`azM5!cDLAx+u4(j{#vlnyWFY$G3I|1tmz-;lbP&+rV_eRiKYHWY0Ufjyk zmPCJ4rM9jq(lAM;L#O;MM~wx*$}QoZd3K~UtI{;M{3OtuwVL_U#`9^;WL1B=W_ENM z=^wqu924%7HTe&E$zBeJ3`oO3TqdS~%Ns$oKZIoQaHO`N7b{tgRBq!k#KY9E+u`l6 zf^1<^NxvwqBb|HBllfzRHOhan!I?RX=`how3Q#gAR~ zwj!n-U=+Oa1kFi-klRYUgo1VmdGR4MA<>YjY$7Rb#E?7UPfgOtsHzBhBNYkq)ORPAg;!K%Zz9W zC4)zs$Ux|mlrN_(7;2R0j;dFH#L`bEPBEWI2B@oeiU9%38P=u0Se(FOS*xmBPEfrK z2|ur&W}D_&kk@lN2;N3~PG#x274(O37rZm_QE2Pzu1w?LhM;EYu*ajA&v!Ed)6|{8 zKBjCWd$_R`;J594(1#FHqttGAd+nk81-E!0&!RKP8D^G3LW`+hMp48R^#C33Sdfq? z%k2S{zhY4S`J-Pe1#jX|yoPD9S~~+Atm4(G=t#$$P3k_$&30o58eTjIjH(gXZg130 zC$?%%y{1p<6edVEo14okX7j6xqd%na8hi|Re?e%{DT+9qw&0j4?Rq(-09(&ymDf&n zNy(OXgRo`XAhD}ogIeGpu*rC+AtwByOwi8(&fHG;oAVb9JTcE0 zaxl2{PkS@Is8u+xUJae6m3qiI)CqXeD zd;Khbjwc;RNMnb>`E9NOYf1Wcd<>B<0aZ}1Mjr~B5=P+UEax#LobBsRgjAd7)@S<>h@wdq9zkB{s8Tw|S3eB9;09k4doFIqFhmTT~SI7IY11 zm>b&~A+$dp;(13m#)QTH4*)qp#=lG67tCeOfD8Nk>X2gEtSs{EaZ6WHTgEj|O7qbu zry3c61ual;(r#A3;2|zi%bTZxl9a3I1NRqjG^1o1uqjhA=xt$MX-F&WU67+Um5$P( zq8}5&_FIRopOZjSO`FcKhJeOobOKw0^9#0&M4lY+=VQu} z)VxnYoNSI@?vKWf@>(DHyZdTvob8u~bwu|CL-q;r_A=q6H_VM{Ab&&lqiJ18-|_=L z>$uwe61%VT-~3s4dq6|d23<_@Ol$q|!$_Vms65jq)% zyKbz2SiA0R-Ub5TxZ8G3wK}kier7g?N3terEKXRbUJEpbo-m~u>pWtovt>-p3J|wbu9x=UA zXT``fTy@N+px=eNJCVM|$73^K(t)>wrb|dj8#sr@UUrp?(qPZxcvZ>mS&;?h(0r;( zqxAKCOhmNvI^SaFh=?3*8nqW~-Tt0ta;NfpJ+*pw z`#6-@O}2h1z39p-NNMeH^_OnmgT>AT&AQ52hL6XP$T?m8DNH9E1mx6Q2IH~(78^V@ zSXGka69TGlHOenVmdvb6ca^GmHn&kuZ3b;nsZnbvt0y;=wY{ORz+Tosnjdzpt|B1IFQdZV7UQa+lsR2#kEV{ zH$ueOlG;y;BeFiwA4w^caTJnY9`Ecs;9foQu%n4~L@%1ELTI~!MndSkw!4rr6lEa& zq^8Zp!j>hKjPu7-rdGn^i_wH<_TIb)Ou-e&A$LO3iE64Y*DKJ$ZRo3`-(d23bN+Jv z^!TY27lQ5$yQ5XWE%0;tavhR5><&k(g;kmLp`*>cu3IphGlQF$Y-G-3 z!0w|m>g40a+7ELBnqyk~GNl>6S2y;WZ$Zp%kdWaFD(8MR1@Ox;&&lg)e*t|N6{@x< z9ts6Q6<7E}=q+C+flp8!z`e~_5rW4|&C@Ah+cr_W8r@2Cny#cdcBmp%C9(qMOe9i% z=w8ixIQ~kzCA!4`=gOzZ=g~D`ab>!}c_N0?d51L}4P=33(h zyuDpXkoG|_Wcr_NvSX-J0hVXl)a1>uKu_8d4IPqCP%(A};A3F9973bcOi;*)`Y-KF z1sC%TXoGB0j4`sT%P4utv*>xo;D&!Rc=6*BUg9CAYm5PH` zm|cjyk6vXs(;&&-f;DZ-G5BOa znIu02>DSPd8(fxHu=ZNOd0GDE1@l;@F~atK(AEiqJ4*YoFGrR>aaXl|9Ykskr5 zMPTZE5T~j^=OhwktBb7WLMCe5G$EWH991vu)F@LXwZ6N|Aj}y+BpSba%S|`?m4a6g z5YD9aZrYR7f$5d^yO2dyD?d_$f}w&5wj(_IN1T3Dl43!aC+j;XUSqV>yVP70dI`rO zjIz@f>VuaJrn*aL&nhCIcPSTQGu45IR{Tx%cf6w*8PTc6o=fP&1FF&xu(2%fiy-Xo zASfG!%9I(~&rxGt9BQTW7>oY6i!;PqQV^+J7zQX!NnqhA(cFF%Hvpc*c4s4eS>((8 zS}+(X@VSYSsLj)*cWMdV&waN>BCvH`&0wg`$Ham#+ZBl>&3;mh17Dh_(izY?D^|WF zmAU^-j}EDYoJG|QV`iCmtfvVekbX|YeykmjAd4uL>jl9)DWi8!`$D#bscRaBBr_+=@23}@JP_3NaQ1Sua=O@|Pzg^nS6eKcARB&V4gI$1cu7&(k#eWX-}7N5ZIc*7&>zBok+ zd-W!fh@k^HN{f(~6h=a-!Zj82lUivVWzIU;#3#t5iy!Kn#0LRW5VlCzHeOW%A*jBK z&HkzzdNcY?oyg}(FA^FYMes{+3=^}jlS*uH56&^BWuMFluUWCuVjFV&0EHQaG$>rq zs5&fU)`@TlJ7#KFWeB$xt@J?56fM>ApO+0b!!}xM5YGF|Awr1zWi8 z>x~L;4J|{Z3Poooa)+Gj;8yE-PXa8e8jr2eLWIS2dMTcHtOl>P;H9vtq08a-O&Pgd zzGGURy>OyEDph5NN zE(+y~_W>Fry455l8f=O`P&zsuep{ow;-liI1g~sD8sz3BVc-R`h*hU^#pg8CH_P<} z)ZW^E;^%9DTz5c8dil3}FT%|R4fg9I#g-m0AfuhspY9I6e?%t=9d{St->#kjEHv}l zK`q1y!r~ZEVF_;KIFG6r>}aLWDbLjCgT_6A9RF$NKeNqM1U^e0e|Px>oK?XX18?|p znqIHD=y`x;os9n^9RyHvz?Ezz)V(Qm#SuE|@WK$)Fp=WWDmMso&?~bmNo_4RYfOA7 zo6tosMQm0QU*%^np)gOJEt7|dP76WH0)x{_8UXlPWVa6}&dLxY2Ur9L35d+W6Uq{2 z8XZNKOj6&F-nM+q`C}ikc_6zKVt`6L`zlttm8*o4RlB;qfU2%o-$j18JFno zvvIlVmXs?_S`#6AKm$OsqqE1m#bQyb->Rm~*u!k3Z{C~m-|hrZ=wFsE_KR<6OD>vC zuPzxhQs5B-)jFt=M4K^&i?~b~IZ_|x5f5nWUYRd}n#DbL^*_txan;_N3Ao@P-)n4k z+O{<7)YvcqltZQQp?-;?hxw-`X%!(pVZ6~Qu*BI z9#VFxU|OYLjkMBE*CPg*6tmtK{wO!7$8g&yxkj}+M3&RiIbZbc^#cdmisV`c!Eo<8 zx+_fRdSt-M?vm|_6ojnEAu&JZ0~`=apoA<~bIwTBgK-kdNJg?$EIZVGiLW%n+?X$J z)BN1p;xHwHS+n^gsTd8>JrJ0*?8vhVE>oRq_#h?>aL*@^h@0j@HMxwa?D1iM{0E3D zr8=PEjx0~TYFJ}|cpoCTL@Ts*o#UdJ=}r7`Z&!;BZ)#mfxPd^PKC~$?5}o|aLUStj1xm32ZNEsdVyxM_Mm`{d zyRl$Fxh1fqZE+N#!i@5rV7rLj>A49FHVCYqYE%^3Q>g}PULt~{p9%i<&(TTe4=o{8 ztQ>taDGbywIbPpu12_fTDQ4f!9y4vA2y-_dIl-H&!k*zv@_Mx-qsYP7#?Rc4*2hzS z+!WZ&d~&K4>LM2LqQVz6U#h+0rr%WbbtLWK_nmf8C$KE_07Uw@#S)}_L#knx*$Uy# zi9E`;gX%)1@+O?Xu&>9ycajdACI z{&`{|Gaq|jA3jVGc>~~Hsi8R>2D+UP;hj6n{+X+wHng{0FGqIDl@ryXe3lD#TlKtQp>h8=v%op@D&>9ovMi30tc={?@Eb=jo z8OfFrt;Nfo@h{hp!$lac>O0Id^IZ8@nG$n86BQ7Cd8dQPzKh0$Xc`Rf?5@=OvDB7C z=al;dP%Tf$fZe33_prMy@iem*RfRU&%Q}R34e7X#c+WWx`oGj(+e_rBsyTuT>oO`j zVdGDX6{=F-ctRvP2yGnBX`ei`X0saGQvb#n0}>zbfC7&TO+Ot-YeliR%Wb()lE8#u z`@Q*$p-aZL`+0>5yiJAG9Ic^6kbyq}$!q2W)$k)%h&@%>7vx4&5i$VGti8oiUknBl zEj)*1AnVlqL~3mAYNxYxEU&^tJ_6&y+y71{`oZiX)3UulmS!@qca>IylA!X4A@p!b zW4XIF$?=Ehb~FYI5CQb9Qv<<0KJTGKFOl}%wSnxL*RH^VfGYwCT86K3;`PdY6fG7T zKW{)7HMD|atn9H5RD9mZXzsyh18T%CgyK$vAHIvjNEKwhEhfHi;UiGHxWvXC`u+{4 zuq&~-0AZ$6(igT8uIra+aJw{9*ak4eJeazgvCaRevLo`R7 zfsR8%7`Kv^8d;%DCUx0@!-@gb;ZD_a3}=T8yG14#m8*_@cI2(TD$@I3ByzFtCF7ON zQ3EE#nw*~R8?%42o+P}m5bqS#3SA*1=O1)A0#avs&yXe>gBi{^)q%-i1%_@Lhu!I| zVE@1dN-A|!_XRn@9h9oC;@_A!EmtI&ZAh|og(8j zS;AEJv+YS~igz7}g%s&-Gx^zxKqf>b#`PN5F{(l^~6OMJO~u1#?<<$rzNzU2{C08I3BKy39x0i5Uo*op&yp- zHff>Vy?~8mCA0S^Sx9o~lr+a-`=TdoBJ9Ce`b|czGI7N!0_LYhJRls5@${)j0(Sp9 zF0ljkr^%aY8KPA20;X^WHOR`4JkS^ieRguCt}n^O3ye*R1PjCN{`;>`SuMfj(2fvV z&;Bj=PQqYo%$9ebb@a->K>c%#&*tIHW;W0nnnQ8;+vKq+u2tWsNU=NIwI4i_{X4YF zOYw8gL>u5L2H`4xLQpMuKhJC@RUZ~nh&Z}%?G70QG(EE-cjDT4*AqvcdS0m7Q&0kO zLPGWA0^L#zjrtHqU!H1s*EaS(ZNpTvdjDq2hR!9_sldc?MRTC%84IsG^Fk#`L_Kwf zBsq{qBB&&pC+PbJi4i*DK}u(W=lOJS9(%(de}Aj>&Kjqu7pjrb?Do`mAQrT}-XBnP z$jXR_9PYW=88wntj=gF(4=>dMG`KI)#qaM}vO3ugIs7?lBxs+uH2-=B#=^eZww4nx~I#}N$qV}a~dZKuI(iJv!>wKw?6q@RtI|MT@ z%}&fXm8f5WL7>aJp#2DsAGCT@UV$``FTJqbZwzc+9uw=GrU*^J|8p^YH0^I?6(M9Z zIV2n*^QvDF=bdfaWvQQzlO&IM)}|9Asu+Y0OP<&aS?mXM))MHCMeGOr0WuwPC%q1$ zHGNbwxED0nu7q%r>Nk1}RQH#5n$Dq=+Q6tO>#e6WrWn8hrkj8?))I!&OHTSYFw5PCGi751>pRHPfmrAvrSpfap> zDzt20cIZ5F!L%76#_)ra%jFFs|QZwf|ULDEgm!*19I~A8| z&hP9@&h^rF{=h{u(91uxq$9pPGoX>07z2voct(Ey=G(?~8nk=B$9)sgY=5K5VdSB9 z=^Rf@k_AWS2Ze^y)~mw27K@G+Wmt-i`PU^1f8!|vHACbxW$xa6kkndKqMmH&iO%sC ziyv7sQwJ{SOHK)Hr~U zWWk^EV``sFO?R^dArvip>;l1e8dTKjMd{kGZnqsH8V@aTUmi+LjJgq!6U|7M(DS;^ z(`>`xYLNOQ&7hIXLg8;96NaP%#EEqC{8lqjiOOq0 zHcOAXx}|GXll?9q6#+3^vcHV!`?eR14C$N8m>6pzwp8B8jgRL;21GZ@+=%k3b{%cI z-6K1^WA86F#%bCUA3vg0_s)v6J~%pZN`U%Ua7+SSOssi}f3WdWQe4*xB0t{x>(2tnbGn4O($a%l=U#ec^h_F$(ou2hHPcDiELdp@TWX_d`=YfRuWa!@hiIQrr(V7;pQ zwlERaD3TV+3K$3Wq(rzNM+H3Pyr6dPt~ud9?;0g#k6bvpE}Sk8=my8&@_awtui`<= ziz0XWG?L&(ZTNXjm`~^Gy({)Y$w`xC&wjOR@u$}1LE4h9v!SXbSEmL)euAw&c52DA zv5|XXVD-$+Ii4O-AtNH3)%}F;CT=_%@4Ns0)Xyr0%(M4@MW+^9TO0k3g&oqrtQR51YnS^~Cfe)$0NB&&Z42^~$<&VRZ4=YYc zlZa+QPzakX%nQ=7NykQfX(bXr+)i$IP6bg5GeR!hLa};;9?;sVGvpct*|KMQ=u?p` zAMaBC$X#VG`$WvhSx5 z2d?oY$`TfZF6jO6{Y7C71-~LhS(ImOTX%d%SrVAHpMB0u2$ za?%&2S_nJpzL-948JoVyda2mv>xMKfaf%+@4Mog`VPVuQ_5_dhDr#-Ib^1ltNh6gx z-?z(5cSi;?$}b-1MB^@2g@JRIeJkjNHT0T@Grr#&ae}+SmV{Y~F^{#uCY4;$Y?K%>)2&Ed-2LEGoA74> z4GibCpO7kdiTHb|HZ(yDTuo(QL6>CD9=JqYZFy{CkR!=ef7J3p_hEdBDiEpQoNfas z%`A+>NJlU8`l!LZ?Yh3aOAklb@K6k0V)t67kAyOfj5SLy6&tLuIFv}DbQRLiGJ^yO zzryU5@jQB{LZY+KQhGzIMO6oR)6wIXEaHGpRr)EgJ<7r8x^A}+W4jJUKvLp>DbA^C z;rfRcg!~aNI4Cq{U!=^T#-A?QkclOm-!_8bJm#_tTy5OtBgdXgO+W!Wwxq|Tw}#RI zGz>O1+_1fq_`EYgyhW!bqfZpql&~gFX=&Xajr~V{KpJlu`}fPS9h#`+%2;VDMzATS zVeS|d#JJU%FpK#t0k)a5>{q5HKTU{~&Op8G965u%-Q;vaR{DMWcw&VQ6ik|-RXsW3 zMQA+WkyhI91Pj^nz?Cw9ei-~bl^we;Uj1u5gZLz98nN)$#3C5S=gh2W4e*vW(d6dy zT+x!v?ngR=>cP!0T;2TKVyYf>XZob&mpy zwl2n~KxuyM&!Axg4vT3A+Fj3(xyp^~{dJ!RY41k4wR3cw6T00VC@G$e*0cB%ns=H? z@Qx#X(+3`#FLHCP%FNY>OhL|VkP#PTN*gKSm;RlcuwAI`Xgh(4zjRa-7)abC@Z@_G zw$^J@_ zC$@nOW?CKW%7vQj@X*%sb`VJ|D*~QPP&&Cp$I@8=e@SvkZuUVP7+&(1mevXGdf)E5tJ0# z2)nl#n#hwidXa=_42*WoaxM1WmJQcWtPy0mNk&o-ldgYh=38)~!2ndu$+hG)RjBJE z!;f)BG?u7Pzi8@w87OY(+Jm^cUdSjj^|FAwS!IlF0deKAEPJGFpNl)zMmAcbKs#q+OJvPyYWx}mG`V+j9Vj| z>0H*n?Xx1?y$8>5ldaeb!oQyPulx!9#bmLd3?`a9XN^>rO$6sjwa4I9R*1>`0DOs; zb8giOZhu7i{mES9fi!w~JXB3>)7gkhK3S1pr6c1*9(x&a+(aV2j6n4As_K2f(Z3xZ zMS>0SG%Pw4=)~8L#;i>xAEv9S@DLZ@V5mz&FJ00%QVF8y^Q{SWR$;?+3-(VY{YHNR z^4VjNECTdmp;Zfs@?iQXjw#_2@WJ9;C!5R;-)jto7bw3Dz2YsReLuDgasq8Xogi)M zPWL|8KG4=cuB8Z?Ft!QEbWmGCB38^hdW53-+Yxn5^Rzi4*bN`XTTo|n4^AsNYb8d6 zToU*hZT%3yP_(}W7nXcMiRK|9`dnsLzjihF-XxYS%xA`LG8bYn8wr}Q+EISJN$nbg zaKzz|u<-mf<)U0tWaOQ3qs3Z$;g*2kFbWF!abUSvg*%nbL%S$Tyijrp?%nh^BAI$) zs~bp5h|*th0m{|4bX?0PTNytH#*^|uri8_f%KdsW7jNkmj0Nfokkn? zIIV*IsE5DVo#B3$O}aq*&7CK+_aJtVheN17XF;TBD-VXLOb%AK4a})O;o-M)S~Hb$ z=!(ckP7Zd?g%|7Y!9zWo;ZYB^hIaAwqT6F3Bq9tMNk4&aU7T*cduNd)lPcC!f8DhQ z5w4!^kYOUWn@Qbh$+HbAdy$Cvf^I=J-QT~=zza3$M`I6=dKWt!R-28MsOqeE` zrRQe^;bgF3yGpUktc9``?6*(RKMkppmbf?sDhmu~!P5Af>n-DF!)UMACg*1UMkz+^ z57qXlh0y@HT2~Yw52lROZIXv7yK1BwSi_OODG+0EaBmmmCyoqI30lPawKO_$ zH||pF*;*qetqZ+@2@>)hF69gE{tEWN0950B&DOhL(`-8BNz_9%Duc}R zxBP9Qcb_Qca-A2JEK$iAjrFBee`srnG9uShKUU0Zf(0{gFliBNHO&etXga^~#40Pb zQm$Y^oET&T-Bhj0*`e9J&K(d>3882qsNBNvPtN?F8J%2sn)|A|I@`49EBQlDFWt4; z>Q1*dL2pR$Q`jq*zL3ISFG;`Gw$#I61jh5bRK_$pba&Cbzf-c7W* zYJ)08bcezPBSjojxaTo8%m(;pW~Z zETT4OezHp4sfBL327k)*78FFe&j(xgFAcs=*S62D)Lxd!8&+R}Bdw77d_h*Ck`<9IxnbaDd`xYsiHlfI>bCd& z+|X;QF6VA4x`&8L+{Tff$!i}93TlW<02PNIAu(2tyN`uT{DG6>0Ju#~``YAK^5Kew z2{ktlE(1<##Txb95bb%!Haig``lQ1_PW^F_Z7(^oRPc^2vt4P35tA>^v^b4ahrmDW ziR>2jA|-_CbEU18Pu?3ZlbvSMqv`#wpcRLg0av-%>xe>|7Iu|!I5ErIqwifdLrEU4 za`)U23r#tqybT)xNs4z=R-wf5qogIa!6tE|OiwB( z#(+#F!~45~?@v}hWS9T=?m@#a8naQt_Rud_?xa(duTF2LqBro?yaB<&l6o_f9-&kv zd?yuKdDE?uw1KG4hvP3;{H$VjiK2BXyq~tkmEOgzarn1=?d;b=#~}uNNf*95JEN&i z{$7%y?LFIeNL{X1K6Pa(1qjVv3`#RpUmBE}AG#c1gsXp>{;z?ffmaw`JI5#c;ez=n!H7+GxRcEBw5#*0AK2yU4)e~+dgNgC-$O+Edtm%)xP z0kZV%9a{J;NKRpSafF;+v_AOO;pwHSA{j#8ALhXU++aTwUt#ldjFU()*4U8usEQ)I z90rR7%oMKM`lp2&1OQ@P3`7ZWa4ohNF}UmbY8jw`k@^%PEfDztVe=+2byYZa$UUtM zFLlW058BzeXylr?*yxlA=n*TuWti53e4%>aSIdO-n&{toKrgh9)~!Vije_%93l5Ad zq8v9m&h6f{^>Q$>W`5%Tttyht%sMlggR2!AJhOe~E~N0AXy>pm%MjV78bEQH62*~F zz8uc$_)eEe%aWav2XQ;;i1vx;*zj&C^Lh5DJLw7w?=Ak=DD{!*f&>%^% zw8Ie#n(71#+VmG$*jN%ZlW<^m)-Oyz?=V+w93t-zr4^v|s(OHtLN1v*S9q10wH|dT zR8)+6M}6vJ1%G}E?>L^68_Om8`6={}$&;x5ECEYdU77D|2j}SYi3H5F7U*#}8q)?g zefO56X(0a6$APd@s#D7;#3fvbKX*yQMz3zs{JX%ckQu(G?RAWL_Qellqgbvkh*KTc zu9d-aMX3;?@E=)6lL}7@mmr!G|I<4d>6;Taq+-)na z!5q7ut1il}nCX~_6((m|mtv4E(ta~Nr zuWt`4D^q=h|HK-1W2_Bh4xv}~Y<8@q+`FOAq}ml0$?H}xWy9OTiP9AdfkDa4JxgxV z2=X_ND?pziAySP(zb6=g`$mavI>#YH-vdJ9tUZ*-<`4jET8ggoS{lNGbTB$*3W-2t zgDlnA_c`mmFfA1Ft6hWcI}(1<^r8=u6ofq8@slbhwwa>^&kXKJkUtGo&*uZE9{@=N zC%8|{Q_0EH;dZqRxr0H-8fK5`8|{o{1@GTrGF7#xDr(=Tz+LVGqy+^=cqm50BljoO zMzhr$IHCv{5U!n$!K@0llR-Ngx1*XMF!|Y2Gsv+9-aywU9-lWqa~uTAdQLB$~3&}wHTMhWw$Q0)08H$hcn;!nk|1pyA z@gon*mj(-h~Moqq_d3vKld)1PhKY^ZUVY-A=sS3jA(p#US?; z6hFY2>x#NmoS1Ea6efGPl|}z=PQFYvx`j1L6{gb{cbrgpN_N0_Epk z!xGBg7+cee&n{%nO2B%fmT#7Slp9sVvFJWp3(?1H6$Xv~j{*gnItPr-fMtWci&Q*e zK-)6>&mXW08G81E;eW{9YqIpu!4dx|vj)D_B3g}=nvJ zhTruDA2f`VGx8HtT|*AJ-FOAtnJ#$DRw-Hq`qg*$|_irHdGBxZv3^dFGENBN+~>!HBZWQY3^(sN6Q|2Vb%I)}$s@j-E z_tXT)7=0CsEVMMlRxj!giyecy$P?v@5}!}F0qQ=%axEk1k^_&a`wSYXBu$Z8%H>G3 zqwM&|B?OfSJ9^q-6qI4`C3*3f@M=FRU4$MquJ7bd?nY@RP+Jf^vmBX)ZkG^t=@J_PmJ^r?CO1o2&4U8g`{{>89>#SYyG0B!~f;l^nw{v{N_nve@FfHNow0MacnT1Vt< z8=?X(lED7VD_F9Rg-|nXp-Y~@XFsb1yLwVBdLrN*h3$_VRtSfDUuLIVc9FL#)Iz;x z(>6H_JEe$ww9jkkrivHYF?K6(9VaYpG~c?M+F%i-)BK`M2?_R#?Pe*Ar*AM4*ZzY8 zUOe@VO)LWLfL@OzJJSN7?lS3bauCiWXA|S@3Yv!$OQJJ?*3!em9hyLd5{Ir{&pyK( zFp;i7C$u24_jz6iX%QJ46MX5w_vXV(n388!7c~C;7+&#LMY>~f%uSPP)kzbsC zM~+EDnpUIF^#*Q^I0F<}=^W}?x4}E;2O^V{dPD`%!o=@nZxowhL2=p;xcH^Zt%|cG z$l4hgX9J7&qL-73JeY3Lhaw&Vo-N2Okr^q{1M>J}htRFK&dIvLPcy%lhp`y@j6#Pj zLL^=z{AXThoeUixm)StKs}hvVG^FU`B)&w%ars@%>y^1)K9qjolwjjMux7ZO=!6!! z5U8M`{8}5XB1rg1J2dbPoNI-;`W(14V@wH`@vg~qI86HT^e zh+1UhJ%!+$h^_0bwGs~AV^M9WYABwQ@*CSMR}YyL4KsI^1eSeKaJTu=RKsmdyjc_) zx&_;xGG)R7Ew%YDHFWaxERXUz;s?Q&K4%v^G=Ls z8Ssy=wl0WZM`O;nHyRjCvD3ZeEE2M6B9-X?XEZi_KY_N%xOk9$wqK`1P_d+RPLloA zOWllrgh=bLguYA9A6;!&p1E$ly8}0SyTF+;PHusb@wNZ_|G*J#SxIy2@Q-$xl-=K5q?elNzMuA3@j*h51X+QX@H3fKX;PU9c@)f)4Zf zRDVsHq~Dpp!|q=y1LAhtJNtE+ur6AGF!VE(MIfzBxyGk7{NLVv+NUX!!I-SHem?lS z8mFE4%M*5xJlL1V{6;g-0{m$u`eSG2~rc;;z1g>Ev`BwwP2m zVbvmd6`d0_<%*1gH;n*?+{y4W=)_`##oN^`Wcs8x&X20;Rg*8xwcv%p&UDq-m~0HC zILKEg#!ps6XBK48y&cWMR?Xe@IY1FYUIjz6A<%jAbQ>wx)z&)fRvXx3EyAwV7bbqN zWdF;$vPpWmP+WHIybcE6F*MmIs<{Qb{q}7_UPD8Z0ge<=^2VK0mDzxfU`ej zRB8N2YceIHQ%tQ`=$toDfR8Qqqqb-qW4vgmLOn(tI;g>7#*?t~q(fzB4$?S$;E~W{ zPfX=G<=TsN=r3}Px+~3ylHD~zubHMEa0{U zkUK(;l~uzm4H%SJY=8{(YJ6$7ys!=Oz@f)z{PH@Dj{oz8*?4SjIJ8eQ(|=zU+uzCV z69!QX_f`EK2>r4Vj^xS8i|~IEuAPGZb`|O94I=1X+CER%48;`hI_}0dUE)1m?Ni2F z%k4GixsAZrpwRyLaA1KfJ9gZ8TU1(NRqZEo9zUJ#))NSY75VNpWmF=~27ugj?$a@Rx(dkh}RVw6oQkyN6oPkcW?hLs%A-Is8! z(^>{hv8GBzD#;4m(?`MpCgC=TbgVSuRRXwfkD3KyX1r>(mULN9?{&Kaz*!qIlGBc-C|nEmo*VNMNS~?$sTPut{u>_N_P#`vc?(QO8R9W+#7k;*Mju zIk*B@WQTB7Mae+Z^jR3#)<*|n;V-T%`r>V}%Q}EpjRz&A3fd^b+%->pasumXcnH~I zHbwO@Ph^U((5#n{`C%v!+f2u!%ry8?rlyvG%A3|a+s&TP1+Im2tEGw(F=IRA;94Xz zy=jj7@}^rs9`6*k-l83#@|Y3}mlQWD&Vj$|O~%^KfF>&0FvSTpbiQ?#mCBRD3$M@IwWB z59e;6h`=k{2$yw6XG0<$HUx8bm7Bp=FfPxzwek6KQrz7M0Sa;R2MKqtkIzD654}6; zxnjbtD)xSn>?@IiM4JFI*v1JCuTj=59F8T}|T3F!u8SEN>2y+SJj#|l&q)-t=qP0l@MyCQYisu8o0 z<$&m%-7!vB>FLG}n8g!TYsRUfPA|o}9$Ya$syTuw=(xyT%tZfv7L1R?GdYb-- zO$n3ZM0}ENAWQ7d@`d8Y$w;puil{|{U!~%a;E6n6qauwQA%arhRAtvQ!|ZqkVzav# zbd}w>lbsdz$qfcp+dT*z>CJerF6xvil@38Rm;_IE$?p@#e;JG10;nk71;d+v;y*7u zCYdA(kYpR@FUYQ)gInWSJJt8Z!^>}Rd0+!e@7U=HF&?t_4kkTdPE!dVdrd=r?|?D1 z`O8a2&?>NAA+M99T)R+S?!7^4=0OJv;eoU)H>!K7ptPuV#}SB9PAXUF-M$`H9-xd? zRp0r=lPd~+$8Nd)aB4Ahb00n!t-3P^r-yv+7It6dHb#w^z6W%RjE60_IfxyiR$O~h zBYHPdb00MoKR|$URP3QuNr2%yH~twW4!BnWP~>we`+&biBsX&qdFXbCbJFR+g}bnW z8WfNikTCLZeLNGbcx`EmESV zS$=;R4qAN!E!Nd&N9*oUaQn*3d;zLM+mmJp zE}CS56ZAXkWF7>XYijq@YllUBV4Y$4y*lB6uHz906z1a~Ni$FaghR&a9I=fL|_ z(<*~cu%@bZ*=ma0UkrZB%?66PI}h%44=^cXZul3EOLE=^9qT!Fr4x#HSE%|=fq1Ye z${WM(Jbry){|(lF&r;Oh>_y{~$;ZKz=(L6tE_?BnkW>T;Vli_RC4{}PPu5btl!dRR9@T{r_W=&4q1ee#ocMcmf)O{&RVvXF~kA%(Xn85pKyazZu!){%Rldd%szg?=b1n${p5WKROZc#+4@=>(WX&nTv?+jm`}& zy-TxHcy+o@pp$VNTOS5=71)seS=FPhCr9cs{bE!W5&47Ve@Ea1h_Zx#919Z}0$Bg>1nA z@8V5p9(S}=qJ662Ln;!{b9RzaIIup5<jo#y$WzxG$52t`_teF9sgZFyNCtP3gdNCx7$5_Nd8xxHzJeOcj(*dnN zsp7b!G4?w0R!=(2)y@1(JH?6S$Gm?0JqXE{`kwb&JQ_C1nQ!$*CD2o2KBMKrfT&jA z=b(fVXDA6;dX#6lK6A-2K zTgP$@Hu9n=N$qc`{MO|$u z1f$2%R7~_34ZlPPYCd06qpWe(0>D@4Asr>hE%S6}b55gR8+=B@zXI@b>)d;h3%jeR z@KncV7}9)IAr{)$(qINPx;+NdZBh9Y(9W9X|7)3V^Si_hX_Mv1*0R!67++L4}c2jw0ZHQ5f)))Ggt&vPVFI->)~^fBEk zv~KZ(FywePo-fD<<(VVc{i*gESy&+p z{@2zed2;7coR1a60WZRjE!MOig6_xI1&V`_Xc=InR4qgtv#QYYLZ~7v4jlK)7-LKON5WGQW&u@>&C>EFr|xCQdN;>8rzG=N`%!I3_NxmKrV z6`h5cb6_0_Da|?rx^dzL4}2DQ=&7zmo|9XLySUCw0oQ&F6~n3reV7@nl|jTkJ)Pow zYq(|dY|y3Oj)%!FX4t&FsXJ(G_!tzv%O@X1KT`ZIXz!~~ri6$uTKeZo0WB*ELkKZ0 zylR}8VPr2;l@5^2p#oMZ#c=CU8Gy4~Rwlu(!$7&8?LcFf?f>rHGWVgdD0!xK{T9X z2kk=tA2Tt#RHG5KoRctP3EU}Uqfsir9?@l(noD#LCBwo5=dm@Rh(hA)wDwH)W60wd zb}GJ^xRC3^8Xkrm?eDad8p~utHorGJ5j{&cUD{SYDbqItO8o*d@U;AZQ7|M7wjWmZ zR=%<~-p!r0s>eeC@iA5>P_;nJOM0dOMMcYnIC53Qy>pagP188oHm7ZC+O}=mwr$(C zd)l_`X-?a=?e6V)-uL;=x4+$U_Rpel?hl^1iRRc|8j&Di47UC)nPjen%Aq@}^5xcZ~vhORcC4VR0a8R`wX zT+C`X1>?s)4$(NmOIBtG@2y+es!#XGq>~4*bRWmGY+1xFk)A> z;wRq-nt7`H%umz%u;s)NhFgqEY?=$9gT}on9ev*4F>Wb3S#v{dq@svju>;wfRn1#I zfEYPBY^>|_W@0XUgsoaE{8$y-4qnRQVS#qEI+hgfY>L#-0Hay9h@Qlof|opb+D&m* zFy7{jG60wbN9ubLB^?!;{;%I3>-0@+2K5}n*$>=H{R2R}LD*Ht8ALdH2G}S{(4BB3A2*|3*nthR@R>Mt$Di>vOjgvp@z^=A;`&do zcyHlN&-Rcq&$I|j@pW>V**;0l(IRZW~S!IDmt8E2NyRweM+1Iqa^o?*T|H31@%WJW}A8i}jg&erfPpSD9LVpog7_aCWVTF!6>(M-WBc4Yk2L2XuML}gX@N$$ z`R&Yl!`iFYK^iz3Cx)z5DP2a^QLpT+z_q#EA#Z!r75A1Jlj>WIEU2-PGSuTaFRH~pV<1Y0Li5w7#murY$>Dg&eKypD|yy3VdGUBpL`HjGlOoO~*M>1YeWuzC(YCBZqL z7UDKuu4o)EdMPmG*^-{=2P6`KYXAeS{Se5RegM;SUBYMHPowl79DkT~uGTj^I}8An z3YA?r1TSCFw!MeJvQ@x)5Aqb$Llz`Xx~&@ACxZ}?9VO%;Wiy4_Es8xnzf08hxDi@e zFtcIF38%8(fwVBX01j#(nAMtta+F(frwIU|{bDdQ2A>>3!|Aw|MQ4zsBPo?enASP8 z=?gv2pV(JOi#EiACm^-4^M!~*Kt~>}iX=2~={LTw!dO{t8|GU0*9+tB~89R$;L)dr|d8 z5bC@(dE8n9&D{@e^ul{*o)E>?YEUI~l_5ZOcf-b;{qyitd9t=ZMy}@icILNB@w>Vj z0Gr>8#mK=?>dWj$y7Xs|0p=U{uk1eTF|6dKxu;wjx%TxCQdbF_HL1d5iUTTqDaq;d zjo{X%i_<@HKaktp+nL?FYvqLnQLSe&iNJ2r5z7EY{Pz}Y?@7-FsUU@E!!MS*kD-Ek_g z`xpQaX&3e*M}%wWys6_fS`+8k0Y6D3&H?(xVvz`T1VS*s2L+CmnRHqia`o=ii`#<< z>S3N@9sQ$0ChEt&q@XnIp&^%#{0!Ukfw6|7UaMv{8%%bzfT~3nYErSD*_4Uogig+2 zY!i4PqQ^~tzJ4a`GQLp5;IWjg^FBD_IT7%Zd;*~0TusQfg9IAjGkg97@;=`uLfi%yOuv4$GsJlU@`(rBwEcLw|j5fq_U9KKSh@e%82|Tq#T>?PF zh50t0U`C8TbG1RdYBnGO038Han6Qv%Bgi8U>iJ8HxXpPUQ1!rsqT4-wwWhDTs1`gM za#8V5lsy=xr;XJ%4KLNZzWB?U=e0idm`c_+{IE-8g-gmj!u+J0mBV`SW+B0bY=pw6 zini3nh+lg2UkC{4oRvjnH5piB@M$JnbFLu;Yw`9W@yGmkMp@ zI9;Woqc&fhP{i53sMM+Nl%0m*_12y!WYpg4EREoH*&?d7&JF;uq!j8Sef(gsJPg-slWAA-BUx)hhpkpcjY{c#wx3IT!kXEu1t^DEzU6qspj>!1Vy zWBjDc>N9mS7LnlsD%75E{lnVKc#1j4?4t2)>QxHK0ghVLDLY_ZzmYXB2>>z?IXxRf zryKUo?7Gts?(M0nHEB6Tc))6pqWzBNv9hsez6J)k$U#W0ln1WfR=D-@x@+?!PJdSc zp=L$2QWH;6EjE%T0dzz!?W?qgCJtV5JIyxnC7Od@KPZ5$Vi&WxR%R2jQ4W^a#cv+6 zfohQZt4M!ZBty?b86;&VB;Ni(l8rMqQUrpH&do#zlw4^;i~-Em`Snh9@@g|aj*&lS zADdo1TXAHLC%NGoJ4)0q?FSjBZf85?g72HTw-m-X+1)i2_Q+#JVYxV~^t|G0Ggs6g)dKWcM zI1~}rKOez~f1reL?gB+To;RqVNq!tLNN{EQjoG73)*;VcyhX5SvW6c`xA4m)H?I<# ze_kl|3@QC6xB>^T-NF63-t0y(0Sn;!#5L)pDPcQmp?!r|G4$q7nvm4KVu*<|Zt`MW zGYfquMG+zc7)-&_>)b`j`F%q(xK}7I z&{3adWvx~}EVNoniu&_&Ww$et$}lTq-K(cz0|oCVTdD}SOOX-w{J0$RyKtWMy{cp! z-h&u7gv0Najwxvj5ugHZHc!3=Xp2sVk!-Rvmdxt1^jmyBc?qJ1_ssfCsEL4~do=Kbv-_bX^YWlE%ox5fJvZ`p~AXlfTPZlrSR%!liMKRy% zPW1Zx{M2c&V?=lx&E9T5V<}(c-#}(f^VdT@eO;WzEK+tKLb5D$BxFGkpL|eUdZGxl z#zW!}i>7TlBr;vKJx10d>3!UtG>u|0^V^ZGR6RJ=?((G=Y?Su24V>>xNYMy&a^Rm7 zHT(ijo&7=DtL4>ZW_~E&KWGjJrI~4K;_jj9wHRRhsG|;hSGmicZaCA~h?T-K%7d71 zn-*K&ZNVjU?E8k`%J%_zpOIx`W@TrDW;eHKr#AFby7Iy zPg*$+f`)5k8?J2pXnjz9k%>f?QX%k%k7|S%B#rjU=HU1_{z)~@>C%P}POZ;?<_agCWbfrN&hn%K zDE%?+Kq@#C{Ur|}tM_iEK*MOpv^F-wt`SW$(lO$=V0uV;tq!l0eS{Z}R_KtdHfNHP zXu-4Q!N{Nz4~n2Ui-2F%phWT~pB%y#RQWXCvn98{Kbgg(x}l0n8EQN;Ek2|>{8CI` z9bfRw9iFGfQad_a@@n-#?NR*@Lp9wA!dh%TZ7gpct)ya|R9J$3l`^sS;X))aWlg@7 zYNQTociy7P}ueg$KgquyO8X{(rLIc+XK=$ zi{9p$t>E@!w{xjSSb4ccer_k4WuDKq=axK(1T;nW=CXv;p72U|N4^~=fuO(4DV7+S zuWr1by6HtlroxP5^w_;uS;$Yk{oobhDyrbT9Ux7i>+4h>EAJ&QAqeh4yzI?$aWn9& zhoNMzQZ9IkgW@3(Q#CN40E*~@cq9A#N$}zT3Vj>jKX$B|J+O3?MGtpGDG{arpdFj6 zc!Hx3Mp!x8`AqO4c(e)K6Lat5KLgjbzJkw6xvvkqXV~wl(KreahECLu`1wV9 z>PMt~-f;UvXZVEQZ31Z{v^y$M)i`|NXTAi1Y~!&gr$8nwpW`pX!IBlnFBTpyFDPg8 zc~cVfc-qpcG^5sv^@uSPPx`w%%Z+?Ua!7rmkLAAIE*wdnKUtU}7$g>F?QY~&TcXLW zeK^Tml!EEui zV{I;bfVvIfS+?E+;q+FK2{?iF~rdJTNfUlTu^K zIdCg~i-4QR&XO<0icO2p@$`(3bkPk~AzK?UF+62dDU~-<{6NwRP78yAnN@a)qcY1< z)DY3j*3)JymiFraxQ~)A21k2%*!YwCu>g&rLRIWwY`bUIW~Jvnn5yphLd6^y&?fa0 zB+`(jlmN!eSyc;S7Y2y;?pGfff=mS(*dCeh^z<><)Gcp}6ue4Ze7ah}7FY(LLX|2E z-1GHbu#-F!iVa((vCVY8ep;f*CZPGe!Be(c`v=>`Tb<8bT`f!7MF&yr0{$p0=MH#tZGqL{RS#t4a9+X_=SDbs1yN{@g`#Z59s^~ z%5Eq+XJh>8QTrXqww^VHmV}yW^*xs0j|1Ay#@tQ6pQ(pior?zuM{t*CwBit!{j*Jj zt9j#B8~z&sL|^(sB-fQ?@}~xIruwTKmf@2IgB4%g;HGK*FehA-P&few{31r0_k*`D+2d%~m}2fp0kT=A(sC=K4?( z`(#=&uW8>tn`Crm%rnK9Q;ADCFgaG7!cbfXzEn!L7)iYN=%cIhS-}ld>i7~u9;5AW zgaU0JD+RK#ALv9KjScbsyVy7!3;YX`yGb7)o$zTt;@7*dV)nLB|MhnY0o3ZSi@6t z=5dDL-1Xv0B~H;By!fWcHCV}jcrDb1OAyObOlIF7Lfm;YUhp>Z7aL(Dq0VzW&-O9Rk58_x(ORpyn{>T9uND|m;_!N{N&BoJmA>^wR@@S%rf6K@F0t*uUe*#i}2I2$)JJoWx(Ql zv+9U9F@{l0kbFZKBXLw*$<&hk(3w8B77lj-?Du4Wt90{dig0<@X~y-}LJ+`Wa9pc_q$fYFvKOEJj4 zXaM-=)^R=OM_!MQoF&ZFTvkfzFYb(2t4SZmOZy!+@`EVINZEZfHY~>Gfn5jOk-rIp z$jXvRey3@_MRVU;n2aYzxEPfk_kp{t%^l(%y0zT z+_NH@ypE2ryRvcw{UJ^VIcIb%$Uo9#EJClT`yy@$F2!VwkO^l2_<@$-F;`@IzE+5y z$Ye#9le+hNJ9g5$2=nHrWh4c}P{rAa3F6V_+1kM2fa)ZtV+!m%R;qq_R%gjClD&sJ zN;#bD5Tcf&bv|PEorQzhuj`E>Zh1!zi=bHLjWf_xd_93)HkXEtszE3SWlnMwcb)Za+eBuJiqHUStGf=I(kq9(k>u0&w>W8`*xZY5t?*Kmg-0ZWAaB5cHozLuG? zA+X zT>D#u(|l9TEsNPen5-k2%{6T=r!@xHnm73AAdv}1YsJ(DBJ@kC(q=_>owT)V??7!S zaTl@7-(QR7zQaOVkZ9m5-F@rLh5+gO9s;df_-BlU&Sbna$~;4Dgyg8zgasm*zIPv)O_%=wz5wTPgP*NeQDY0|wg$+w zU!QXiRF+66;&N1aMG*KQsBzfAcRy~Alt$Ey+@zlM^k(Te#^WLW0CK*ESdG;=HgLxC zhM#Sv2TPf#fMY2aC|`3)qrMwXqVVLSz-b3B2_KH++A}af z_qxvr7A`TE#&P2rsnZm^W>q#Ga>UY`D6BNl^eDq0(Zg|Mx$kcc67=Z&6sG zA|>f#+->77v>P%rD%f&g;eT2nDL793^yR9lbL~Vg)6FXV;K;Tqu$f@F8Ht?vWT-cA z`{>qsqL#d_al4dOpSc)qYBlKr6&?CgdENz7L-(Hd+8h*4HF{pGo!e0xrA4*d!}l+{ z4?Io)BkM3Hodqk+puS*&tCna;njoKRjT?K7rw zAXv9Mu-`R#{|=_XC95Cv{x#LUE-V_4^$HtC zViPv+-Jh@VT_Fzd+QRc@jC@uKej;EzvBk5Nym-QtjPZFBjUf%Lzv`M*^+3B6N!(zy zCJ%UG|1mSmt!o7!ssgCZ_eaL$^TITQkC%~lO%eu|9HrJ;$_w~X)ybA6f;Dww=0v>9 zr);_Z7>Ls-{BnH8v1|ks``XrZw?2AY8Kv+_p^vmnsDri-=L`RdP3hqMDSlY6sxW7+ zx?0)XMV!y1HlDwgn&831Z1fn&QWC{0pjXYW=e-?$V*I8oao(zfyjAi2`LvhNTlWZ6 ztXjFxeWm=PWjIn*hPWI*kX@n97O4q z)xgQhHn-i?1pN?{DJn;X(lt0QZ9uYKZTKgtQWTk*t@kVFvp-4A7by-s(FFG)kx=2$ z1v6@w1!K|sA{MXRiKA_C)a?(>iha*TAA(`pIJtmzA5_K&k> z)7bA~%lJb;lVMK{TnY8;s*D2(a?QBy{Ij-^>lgGL(m8K&%GjA@J1!Z85jMHTbDLxx zJ?e1Hi(OSSQkcnevIPIz~% zPnx_mO26p@VxdJ{>u zaiM*a#XUYJiI{yUG+(HYeRJZAO+G~y4dt!nrQ=g~(DsI=!S3wm^wSRLSSt`5eSV0H zo9jG%6XcDmV>@o;GI;aor>7gRXAQnM`Q|tgfqd>LBB+T53~V$t7I(7!%$?hIhNJIf z{%pP|RVZ&Qq^Tv>tH802E3MQZCKoy2nmB&zD~)8N#}Ov4;E5h*6YOtnPGf{H4%?pD z8wGaUH0+Invtmlj!p$4g{75eF27>842ygPyfFo8@k+JDq*Nm%pEdTp2CR|~~QpN0C zIPEZ71jCfkNG?dt6ttEgTF;A9D@k6^{^m!vG8Dg~O2#3%E^q_;3kab%g{C+*lV`N9&-zDHz%ydZxlOLBUT$zWnc9~nVg*x`aq@8_(0>rslX7VBOJ%Q(|pT~&hYqYMWS@;`z0y9#$^+e zis?l!!IWTGVs-liKD=VO-n%KaW{J@nFv^~JJF(e|KQRs_Qk|iX?+K&VzQqmkR z=-5RJzHfjg;2bGmx7A}K(MI2b#=pUn-`|3dEIb%=#db`}aj9cK2mb8*{*K2shdjU7 z+I`mxDlzOQ%l1y!E1m1qzFX+-EN$vd8V>V=jp*clq?=ML=YA+Ku2?z4cn6${Dh4CVDgacLu>1aDbzTwH=QXTN_(1iA^1XDkRP$Ql(H& zY)56?62|GDM9|(nD!$Y-HRU;}U3r7aa;6sWM`|95YFYKN*WAFk2Kw4`Q)>)>9o~~; zrumqAqtMFHuPW^TEzP?Xeu!SrjNLu_l6H_XN`nw1x&`uWYu$by!0KFKQ*(m`)Synu z5R%IF$&W?^_CGlM?YK1&;d7?raD3*6W7pf73X1e*rDdJDN)qZ~vFK%)%_TtS$OkrV zIZWjRRkGSc`w3eampfF}jc;}#`Qo}lx%r0NtxaJM(!XQ2il8;7)vo#b$*Z5FG1rHCC2M$h)SuZr7 z+JWwpQW!t)Eij`%S=5W2zm>&rwi&6A>=N&$IQDIw-NPB03jzN=vW~mtQ(#cBy8PYE zv!3@mov^X+DnnHNWjMzeeG^DyM!*_EywO~4-jG#4H>76jS3au&0I!NUWGuh`nu5U~ z@l8zOtD(HZ+!xDiMw5Bf{_Os*c+5`wDg5}UG|uQlI%hwiaFQ;!fZ4~QHI%MiQaw$& z`x^Q-9#}i5Vh2riQ1`R&JxSi=qTDT%A8HmEH^B6ftX(N%Y+Lb%4aF!M0`*sg*$?o) zwo>{o7A8E>A}6G9Fu`5S~{v2@k_gttSLIkk1JwK`HKeU=F_kURVg= zt3*nwFD1xs%TlnK?fLqae@n;u-lD$r7uQaw*{%@#KmAZIBBp@CFLYr7dL{xQnKrh+ zK_f(8aPFXEo6;1UJk#n!+r=!}E0V1=?SL~LiyK!k*3J4D@NSfKOZDF~VU`B^$}a;C zs_wARr5y3W^=wJKp=^FAo;h?Q_!9Kp-yM<-~dpU>7mQ!S+ zo5>hNhE(Zf`fMTPg1|hm)5L|-4^}taP9~hC?2?br2sB{K!T2`ox$5E=sv(#)o*I!y zmogyQ%qBv^qs@b1|AV||=sqk@lux;r6Pn4C_P z&6R?k=3Afa5b!<@vAb5gasc^tF{n3O0Eq z0kQtz+t%gS#a`+nP~wlMQumTx=u0sOgDScb#x`(ZYb%Hn%T?m@v9#*(a;Dd?S)`Pt zqUGzcySaU_wfH<-cj;??s&6Urz4M^KA*gAJny_;pd~!-5kOH_ zJyXFOWfXV;!&f$iRNK^qUJNJK6h$?fk~EJ6aGMQhv7bFUYkt0;h|L8I0mZd!IU ztJ}F)COaRxYKXk{(X3EEpgnLt3>Z#|fw(>Y=5@j5-1-$Q!*8N9y{oWeA-RAdh{_Nl z-*?1{#}{LCaRJI`oPr9QJG;i%5sF2T&nsk2h~yJaIeunj{~^pKal|&b7w5D7Q|*&> zc7ZikQl#h-YEYx8HrBq*zqT3pz*mOVvI|{#^Z40g8I;WevCok&HVsi+_ZjHd0!;#f z>8!w*JW^FrZ1+m83#nzTv26u37%nmvAZlUUb@&OIBTVaW0f8*`Gt?sY?fY&~6|JEr zf!75ds;6Vturk?MkNtOR>B~!5OmV-0d7{fgjmhTBDNr8EZaKEF0SmC;WV!6x{M$N$s=^raYFJxWo!`-*j7Lh6g%M2p6otALnPQdoc9LIy2b?)) zfUC)XA$t`FUp2tgn%b;dZBtz-cKSql?tD~ys@2r`;w@Z#Oyx)6@y`w6=G3vc0(6!k zo3T}t4=|_)EYp-*n{f@$ER)?1B|6qOeY8wBZ8%G2!qr4dM4QXV?If_w#V9Yp0TKBa z1&0|9S&F5@AKk_{%z@P=8C{RmK*zA-o}wrddEEFn4Sw6v8a3eTP*({_0n{)^cDw8D z`_8Z6MufyvrdNL`4NgYDSP1LD#p-dM5=72ySUIRUGq6Vs&NZ;1a9-vy1c}Z?UPNY% zM4*~!!S&3MT(j6a;Re06WZpl-ngxXcpp^qrT<9JtVZ@?GMFa%Wg1;EDUo0TZko&9c zg3D@f?wnVGM0Qj9cUjaoms|X!IwHwWvJg+QZA9Ujn+*w?0#~t*AQ+e;oL<4a4waQR z#$V$^`L}F-pQTOzOfjH*$RLw3D``Zksj%`{sW{dDZTsRduYJuis2x3j*R0MgR4+)7 zJwv}5ILq2=)Nk+3`4w+BjoC#Y2Bo+|t2ii!m-E8|5pSJ*#$DsmDm>0?^@$qT`j1kd z@o+q7NiUF#^R?`lx&l(SOW4mqzHYVQx1QePY+{ZdU9}j#pxgQC>r)Ko)shlW6+aug zpbvv=XIL4^YF-E`4Lz@nUXLIs-B!wV38Q+;EOV7#)`C!W=8;#t8*%gMlexEb(m(I} zoi~K>pM*CYwqO6~eBS`MZZnGud*ix+yBDpvi5omR(8o~r92Zb$`u>j_kKV}&&vC_K zI*<(7vbHz*?D!@}5n-r5b2OKd#o$3>e_JUyS{o);HhVHAg>u9g`2&bx;w2LbRe#1~q9>YKH< z-rl4}sVcB~eX^muT!v4y;)h{G$M=VoHA%j}Y@>OWaAjT3^6}-@Xb(Fv?sN-nQ5}RL z690!R~3_!oGkJzM!$2jbf%k1VQjBek9Gx7D^{t`4FFsVxqoH;zuN!l|2@XvasGjCee`tn%>O9+tB{p};UD;mv(VGyvwj=)m-biq+tdH_ z`>TlU+kk)ie$)Sv`)|Mhk^7eUi?cH^{mWWJZrq&qB{g`=0}bZ$GlKu>AMvJNy1FH|ADO#twg%A17lWV?$dbYx{n;cB+iYcCuP?;ZPZ2bKmrS z+b(l5|dAt86BL0Ah$6+lNu449)*nq(dYomrjCL=3A(71 z2GC_h?g}joPH$uMQ+NpF zK!Jt5@KyXo1Vnd#Cp-Es8Wo&Q?e}iE1J&5v&;q#1;am3H!&3?a0+coB516m1o2Gx-T;WcwvwUtj+BA) zk%}ZB10d*^$UU>Xdxk!hBgbQ2Lh6&#9sRsbF$tc0rnEEcje`Z?Th_2cNS}PP1E!JtZ}2K=<_!?v?*C$69qRm z(p{>w;Suec32L()%-4N*QdJp_U-%90F)7XC*O((H$0sF!($_uALMl=SsY~-BE&x&< z1$JQPhN>(eVA7YXaxwUOEXs>--ryGz=;!x8P`-M0KRu&AJ&h>7@P2<)xPQ7X?9wbQ z-iEN~!d`!0uRMe6e)2kmu%IsDev!Uh37qzR@nw7^0#TR_)NG>GGr#o%iM-a3ew4gW zWerlV`;$hXP7NOdC<>m{)P138FD!x_n_25azhnOK)d%=4-V=SX<@WOsby%fYw*f@& z=oJmx%<|TD@?%=*{kLhzSHvan%$=?Za!<&z`q04V@BA;hDjL(LVDvA~yJ>ZOeNID%eX!8Kftri-v6AcHx{NYLeoby;DW*e2 zS{;duRCTIln%0NLW*1hfDW)=%LK?w=|2^`F}-7MFe z{%{S=VB+#Ca^I{>jcf~E4~uwYIOGN-e+>c>Hu;5ZbqAn1JB(x6f{efeFH(-Zb~V3> z7nadp*nM1!s0c{;Tb7rnftBm#nyHX_27-paF_;Pe&YDpE#o9kSG??1`u#m-{Jn?+a zYO3A~yC0XBrDS2)=F}BkI8P@LMZXE%HxzRO36+MVn%x@bIQ-8;+Nf%qv0Atns&c$V zCXP>$L8#fZOPAcTz&1##6z!Smrt>CA3Xe3}rSU+X9}cv!TUUX!yH2wSK3&o?!F};N zkA`Z-Ppm<`r{xArd&bq5_lhE57A85Z{LbjFeX8Nj|^pA(C{@M8$ zP@m3P`F;`wqM`YN+MaTLRMX3sVm>kS5RB3F908^tJz8+G(-LOE$1DoHUaE8%=H*nD z?!uuVROBPaMN^EWTi8q?u@x(4JHUPF@bp^r18$H0H9;~^MLPJchqfrD-A~F0 z)h~uEx*m>mvEr^fPT8kWHuZQp0xEHJ;#;1sTsc4APwHpa1oN}!PLMHteJ3f?4$`Ih zhjhVI1xj-rPaYK9Lf$WJ9-*L;ZN=&KRZ?I}C)<*yKXCw~9;H!)!m{PNU2IaGI#HmF1SVl6!$VbWf#x<~c`U!x%TG=LpQT5u}eP$aO)u8=={;n|bFT zYNtAh6X9MLW)0}>^;<-oUnZgAl&(V}b3G}NHQ~J!pJfYt@e#W`2E~{%DNw$vW+7eR z^^KMe-Pjrw70s?wy}}22Y_Fn>Dx|sAZR#G6Qebl}w1tcBKx;G^?7 zh`+OMt;SWn#lpCrpoU%Y$W=}iPs(SG^Xj&z$K>8fR%}>vwgQcAb~px9vS9l%xznr| zo_o12!zajmQw{t2&R%{frBg%<1B!I1D3Ik5LpVZ;w(;my3d*ShE=H3tX8!sJI!>S{r~+~u z*^8DO_`T}wDkU)934viMAOK4!q;+&N+0+Zi0}{YqlI=?gDKiq;Y)=i-%xDV=;c>Kx z6!a)T8*8!nP4JuA0baLXB@U?VCCaTnPY*MVIA^Xj9x6AXboqgPk;5gw#T%XCmR=1# zr_>v%&OYB*g#)9y&~Jd@m^|Te7Ws1L>_?@2?9RhU^vJwJD6$-+~JKjF!DO4 zAU$(wbtm)?f<7#rEglk1%QQ?Mf5<&-V5ADJAdx?mZD;o zw~h80WJF0f;(FS34n=MjQ#Qv=&==TAf05~5D1%rSR^1568JokIj;~phS`&EZuWHyN zC;&P=lH4QqK6L?=i~*)57>Ad+NpdSk&h%mvL z5hwcQ5)F&HSE^(Kmx*u?d^NULBE9cZ{cEcuTWCa0%F4+kFp$bM)R%20#Mi3xVCGY; z^R#KwMhLlZ9FDW0t58)Vx~EfEdqGzHnI*wtFt-W^D1;9c z=ha$a=P7j{^4Om(fW}_VoP`6!|KwHPwv<{z_34@&*J2d(mUxQw%IRzytJw>^0)hX` zzrB4x(m2XT%7$Aj^0EsrzvAF0R}SD-E=ftYr1+vK~iF^>R zmtT-=zz3%PTmpNNj+~0;f=6&CKZGp&E2Q=kkITyDxYrN>sfAx8^@#}$Um1J`fsNUi z$#HtmI9O~u-bCTnn%~6znXx)bl|VFbKi({x1nyI4NJx338z8uA;<}qxq>@2ke?|OU zGEiyk8;45;uQp@#q-$`HZiV4`o7D>GvC$C!!SbC}*P4P_fq8<+9689{y^7cfogOgI zD{tDi5~H6z#cC{2);XtX(C(tTm$zo-0)pi^HcXuv`9l8D3BX4~f9y zNF<`{NFJ+fmp%|^GOKdsM1AZ*0g#n`HgsZHYKbwe7P6?6v+Ez|f7PXT;Mqf9OUjUN;Voj zjQwHuEV3=D!dAZAL6Wq3P>r57G3xaihG*n!Db{X_k88he)-S6yjnH8Sa#YLlVz(<# z0}LIYz$86{7`XhjK-d5}DvoUF?FTt?%m7*??3_P+NbHg%>ZV(q!ffQpibLkF@(dbx zd^g)FCK(W*I}t9-og&x~pz^nmgDEg2m_3IEyrgj1ZBExm& zR6>Tcxi#cv`ym+H&4$Iph)Tc?Uq8}IEX9(r8}uxN+KU+x2d8fk(~mjN2R<5k72Rhs zCcz3^3P#DMwFQ9y0JI>Fi`awC=C$!e&6++(APWNqPNGRWLEI_4HOj zY}Vkl)jI(De27)1!Ez=f1vUmo;buLajGENE`4kz8lBrUua-oOP5T zf}q*R)8=lTJ)Uug#p%#ql4Dw$w4Alp>Qz67&FuBXa>QQ^?`I1ly@P+=E;ZP$=e7m; z@{%H48}KC>g#IH3ThboUo>m8^z=OM1b~N#o@VNUkaHLv+aQjJyW4@B+K>NIyywD%6 zx9{?|QU~_<5Cj}|q{%|GB8fl!`EGB=;V8TaaI^jIes=?4pKRaWRU}R2SvlQ$JRd^J zemG&Ez1T-JYwa}J*}~efAlcrK350sK_0kG3b)~NVX4BHI=|f2c?&DlKZiOr& zhx1W!1g8(38JfXAC8reE5a5lEcAp5{VTF|0L zy_Wu+B7&|kEM}}OwpV;!M=_87(9?rw+SL&?A>_}qTu5W(Qqw?zA2A$aA7e`>OzzWc z4m2*N7k@hKSqp7xECDOePDUZW@973p$cQQ)meC(2csV3ysu9(7oCSIT?@Sb5qr9SN zlTOe;5u4gbphYwA3z$Ut2z#?no0looQM_g*g$dFci06;eLZSKw>%&0l z<@ho22oNJ}bMfmE;$j>62M4Ea)UB6tYc1|s#6lLacP=P33&GW;Z*p7ti_Aj}f=#(? z+=o%M@&uEFFeMeU^2)uIgpQnZ=`ZHa@GcH z7bmJ}BjKK&&&PSal`GJ4eTaffDsLOzE%Rt|T=5>k3lnFnO`DRnCHg;gWhF@tOPaoj^45hIX&A3h#&YMg4N}+?((&c5$h#3e zXLH1Q5s)Vc(f7*EH-0b8`f2<$kD22Zo45u^2kc?gvsFw$QXt3uigftv1);+x!Qlcn z52as0mPi-tzHwK*UWTuv3V&vY_$wSv*so7>F8c4wY4!B%oW|x#_L()DMXls=CVqcjq`o96ib-p`?| zODm6i{BX3inV$OIH^9og{sakq^y~ov-aree2c?+dXZC_k$j|p4gA&iwDuBxB6r9kV zUBIuxr0xfNL>)b!|5)8 z?`!^p(JU#est?I!T6`f;4kp#jl6M)s%iX%jh843;LhiH?)*3IN8R$zdPPZfBl!=gd zWjoyE<{^0?Q8vXNBY*eIA?^0VfdsYHiFkv~=b|a79#+mpvJ+0>jBoOZZ6TAumc^G% z(Wcu@ILj)To7RC+xJ}uBobmia}|P zD9#_7bx(i!5C%7-h#&}RX$QjNkdG?ad*;gt4hY6IS1J9SkRC2aXTaMEEsxhXzbJGV zP|#0yl*JQ9m)Q!(1@8O;CD982F#)?t^zu0%KkhreJerm7ZtJy<+SE%kE~@d!tt&Q# z$kB-Ncm7;=ATbXC0*#b>X+6kNifOY1+B@R0j{eNm!q&zHY+G>{_=~g@kU+SJyx*Yy z(2bv%UMce(o*fqgkzX|ht&3+M;b8ap73&3VMzz+;A04jHb;zq$EnQJjcnzYGI3b`< zBgq+g%4&b?YI+B*!iou`5wilfTKaa;d@xNJ7@XlkQjR{99bO#_&CW=8qUJK@3FSr; zr@*2WU5t2A5n5#11}i5f;s)Iqvt#zuIKfMWm(bpdDI(_fjbjgryi^3*0+74~0u_)z zgM&(&LE}Uk)AhQu^Y^^R50s{DFG*<>sdBPe3sB*Y89IL|8OfQ0%tpZL{FDFN_v1O? zE#JvGdJ3j1Jab|QPE_l{#B*1?j$UAw9(5J*;a6cz zn2@#6!3{-bxYB=p{QY0uf3JXC-Wqw;pmZr#lT0rC2KsedDff@yuO1stbXb@hUSXTa z`ycv9{m}t$3&EiJYu7|ksNC{BaJHCtIv2SuOBMlnFV|*nbUIpmoy4;(@&(3BY=wm6 zeMnF^+KChD;SgbQhXFjvtM;G@$PblQa2@>Hvm+9xh%e&T%Ef76vTpwtBV^TK&ci4! z%y#Y`W~x9EzRg-kpEu8&gJ#^sk$JcYSQQW9(W~nXj>oXGyb5MY3m>uzrgI|X21UX7 zc7#XYuwz0|u@KcZHS1XR>w5Y0-j>-%mu#()_Y}sQ(L8z7=V|K*`N}uP=sHO{H6)kW zU)91QCr4+c#i0|Dh;N@0*3)9s#!J7o&p@bd?$76XG}AjPv5IrO#K%Tx4LFS0`%u4M z&*KRK2k?ahhI}k$c7|3EBX&-YJIDiNCp(XRVJRQ4hUkI%bJMpQQ#pZ5QXY2JXJ!^H z=dU_9UYQv;4UuB6bne@UW&DmQ4h0*Vya@KQioD1WEW@Qy+i~c9_wQo>BSgHC|NF{h zsDy~3bPxg=ff8!yFDe?X6ByPthqhaAyXe!ik!ITqEIXK2KZbeHRY*<2*~a6o<_aLobGLcn(R=uacZ z4ET2F3M78a@emkZ2T_Y_HY4oa%CnIhCd=)Dw^8#GT=$M9R=WYc!WgyU(b3IHQK73$ z8PPq6#5S7r68M-n&lx;Yy)L?|e}~VY#oE=3Tqh3l_>bEB#cDjwqS*-?4SrksiyOW1 zCR&4?3AsS`XQ&xH(dulnn*QjNusaQZ>>vz7UY4kxhhcRSsf`m2_k|$x#axz*y5M*c zvgZX^h7()~^+&KYj_QwM#=!ae+9oj-qmLh*pS>&7)U9d-O!Okkb;KjPf3XVaIfo-e zqKcux%15ut#s_9dWSK?Nq|(j($%nsNG_k+GD7>(Bp#+rn?yvkbA@ zr2He2bSIsie@D}N0+H;;4ItTEKbZ8NjI=h8%@fMo{Vj^DoZQiHmX%aY(&NCiv^dM3 z`K6_)p$K&abEixtB}s=SwhNSi!~(S}T~CLBUd^#3`#Or%ymh}fg#i21LE&!8tJ&Dy zsT_5cb4(UO`}52B2hUKfXyjPgRaqW6cDHdK>7;Z8+Nv`eGfGMFE&0tsA$0@Y+b1xA zAY-p){cRO zBe%uG3PM_B!Snej(m7<`LBrkI@pMZk*}-TyV^l}{Uh_t!@e)4)SVOc7Qgcs^ydZpH zqI-s91s1JXsN0CLkR6Pv{{l*db4@QdR6J6_vkWrc$ci4B5OQuDA&go0Y*Kp4#CG4A z=alKfF5&;&GQ$IOzw&xKOQvy3P{-jWm*YmsY3{U@eHSu$qPWu}9UFeqD%b^oyNLMA zXJl=iezH@U0Gi&G`NcC(vSY~YtXw+bHVtPxYx z{&CiQsS^h++X6`&*y~F;#{CXl6QlDo5v(-tVpU}CDZA3%Zifi1^lrRJkJIE+R@=+m zl`9}*ORDYt-fp0^Dfi)wjI7H3?)+^K800e^H*qs2JaW+j{9$rfJpTD!F}Lw&HNS;U zyjDSU&3cO3G5_?e79??V5pr~W?|=-d61O+W2WU9o=C%YU43R8z9vEDZ*!7}`~#w&TGadGr6Qy~*_Ukzk7_&i9Z&6(I^fm|j>dUUzNt%gY%(U}k8yV?8Y z=d#HH>Z0l*$5i!R%+r02oxTxKg#~QKDFyRHNgLHQak4-@`T*fUr#1|?98X=tXYG`g z2Bm}L9SWlowVvH0y3w_PGs^-pb|^)G{9}mEDdz1@qqRkYS;C(pnMbmrZGErf`WQ3B zWfHWM1l9D&togynj5{(*cKz~~^ zcQ+Q>DNK~Hw}mBb2)u`B-^Pc@ySY+AGwV!84ZFqT$jT^vR{HXE0#E>DfF$xfuV zu++WJ^mrGipidRECvvn9h3e@*R|{}DKS>vorP@YPXP1#VzDI+x;nuMXo3ahU<96;u z7Q}L)=co+4hCYgJP_B#8;bTal>vki2N}gd*4{Ndhz6-NO>tU)v#X&Z2d8px5J#234 z$W@(AGxgKN>=P&3=`Aj8;`JI#rp+Mimc3SLBFH*T116PcE_DThs47OUHUW1@OAlMl zDQKZFA`1*dR^v#5utypoq}(RWaMYj3x~;uLLIdw4vs|n*L4C3H_*$T1S-*_;XUiCT zMs2e9CAZsvhMykIi=g=vtDZPnReVN*8uTOS6n!L79Ev$~4+p$33Z4sDXmNGotkdT% zhr#eIZ7;7Ry)i_0{7$%-hhGP&_NVZH#j^XP#?+>^%@IeQ{J1MwNc`VBN`*}92le|L zFpa<|(2`DA<3C6*JoB$w$}lYX37uk0QC7ncV$amVH_R*}F8n?Sm`_O59Z?S8r}3y& ze7Sc6p&2Y4d>q^t!;w8x8D^`;VC4G2zs(!wc#sH%@O{mXCLeALv~SbG+^&f3y~=!4 z2T7TH&MIkhvz8Rizyx+HH@*S7RYEOg{pJ_uOQPI~=Qr2s7X#7j3@NDsM-9O5CeB`j z^7-!$RIJMcEtbsxAhxCJ6ZnDGVJ(`~GGX_PM5bsNsBEApg9Ss35kSgmTE?8{Zk33r zj_AgR`KJgDfB`xYy4Dd+xu1}*$ypfThA&d%>z9$Jd5ibl>NeD(D)y|8!@H|L;WQMi zCJ+O%>ir&U*I~@WJqmNX_b9v)Eava5jZ!ns#*ut7NIlE6e;T7Yfnn>!WHB!HEsPqkQ!q z4g&n`lc!SExW?kJIy` zwPC78=hR#5QxTw-RDSUhc*%0ZzSe=N5Z#SZ?5t7F0zKFPLU`vzMdCYD*B}(CYVK-i zKBP{oI(%BoPht_M!c+c$a7w9i$h0;|R#6q`(ZLF~>!YOVMF@P_-fER0!{h!z5%S0* ze@?D6NQ#h;QRmM!*PmiRGD^38OS>H67-DR38Bk4CZ=1F_#>WQ&0qOO;!5o`kA%gy!KQa#aAm}mkj8r+d&hUd%uJE^-J3zcU7FEA{EZn@Ss6vMa_`?)wxiNq1@ic0-E>N%>7V;+%>Id%~)Ki;oj5$LcYm^ER zGyAjqynU3j|NAAs_@;(JMO|lee5_c_K1xxZ(}1Fray`!LHUO5LCb>egf)2av+Jqgn^r%wF|nCZ{KAK;X$d@mXt zqqe>@g(x*I>TFu|iv;yD-E7z>`I*y9m0tLZhguTe*t+}vphQNb>U09u6whOUPQN~H z?_gTs0`CH7TVQ|jYiIQ>YB^E=9*SC7){kK^7sB!1ZYY<>sck$EbY7r+R+e_4?d;)%i zW?4ybx(q6LEJ)E3U2Ejg?=*)&_}y+K6834WG@Ng^;dA@Uq0X}z)w&%Ge^3h1w=&uo z3987xFT4h*gG3^K||Xo%G9^(t!?8whNOLxpASY+HuD&DUbDf&;? zBAp-l81*ugPn`n2>G@1x%#=pE_&HO4ib`z98Z{Kn;z7~f%qv_|&?QhUGaK-kdXD;u zh{bhvSs(2`DvZI%+Zkh6bKwh_*mFrAkZ-PP$lihpCwMjZjXM6Wf<4y8!|3LLq64nr zQs`rQHwLkUD+O8=B%d*Q_xuSs`D*&X2VCzoqE#tz7?=q_)-&h8 zT0HL{*>?t?;R=zV#ogl$McrE(8EE>mEV=4Y>`CP<<#;$%qm9(OKRA>Dfo~Y5)>tPN z#dTH(Cfr@EzH{jpk_l_|^vs4O1*<#$xnVcZr^*@F+PkH1N0j8iY|pSc_Ayuez{772 z>x_3RTAxbtD&K!HbW{Wm#>>oM!Cnt<(Ds!*`i+V`1k|GQsOKBxZXgcWDJ#h;M zpzHjsG?QkhL~7h7THE*SlyrT!*yyA@(yOE zGghp=Cr2y{O6HmY?j~kGay1P5o^b!dPWE24{vr#==D+Udd};(l!#SZAWEe zonm-QIizB=g>t(NfZ*}04N%+%uYof`MpA?sh15Giy(P0XeB0n^w~dz)?H4hjqE zfi??=MfdV;@biM$x-LC(LLT5miS0ZILj9F5<*2i-v^;ZE#{YXnDUuW>7lSwA`am$5 z1a6}H8lAptTHoyfGLQusZ4u_w;%eRaUmVBP`C%LNJ3G zvTX^;T8IZbjM*(#N{a1l>4aIs89TTlfWMF~215dQmAva~tu)^5z_-uBQ{e`;eioJB zu^OVI{|!Nk-eI!}88czvJ4^n9T@vA$RY!^C_oW8x`n3!}@KP?Jx*6#^Tz%alBMYs8 zCj)I5&BVyV+j#Y8Irwm9Hnrc;H(`d8HgS5yDH%#4L!=z9;yBZJGn);)nNVJtkW!M& zf!NUE%nuz#Ss$%A2mn^kBdiYqg z>~?pDAuD1Z0%iu)k{K<=WRb9~Rn9M?>oTun*nv$rlP!B3907jZiK{9)UA#1)*eV9N zN#|p@q5Y%_X_mW`$x-3a=IAhG6NHpDBVg(8bw=@&Di=0gKR{y7aY`OChV(3y#e1Vt}4< z5xr=U(wK?l>7CV^ubGQ9#GSV~uWA5P9Q#7TG*TDmcu3%-!9C)9d_GZUmT{+Mu)t3E z(?GAvEhZBTRIKn10iSf*K(^RLhjs*0sGO(njSLH$E~nHWB~|}J*Y9T_brl|icXt7` zkm}o>cnid6F20yk68&#OGd(%$*XG4OJulK7_d;2HEadcpf+Uw{@ zT}y^ov4ypaCruBt32+8&=&xdZEX0~N)2L9|itIT#e@TJ(=GN3q@&>vah1wWDlHltd zC=Oy$i;U1rCFm#LDQ(p#|D`lr)ZghOteUBb$4{&{?GY=F%R@9?ZKl4BZb2Pw#Za|g zdnU?CMH)b0{t?L=jNJf+=Ee^GDrRfDRBCS)>Zw(6bJupPCXfe?9a$!HVtaLh&MJjs z+?h-tUfy$&!J-A+Y?ed19mn-8o0qT-__=jnddtwM6_y94w{ce%kGU~v+tk+^ivyQp z$1579XCL=Hsf4Nt0=G)_>xNSC^U3|Ia+>rdFDE09&{`yCMT|=rYC*ipVMpsywK59X z*_vvw;uGB5hMl&L_e7_f^->sxgZ%F`57H zo5u5G|4`gB`jkBrvx%F4d-Vlaw>(MHmWtiUj>r!;z4o7sbe9^{3-!IN~FI-x@a|+ z`rb`#2|y=(k0cWLhW1@7#U!qF2npnOWdqFL=u@$e8G52u;%s7a@c_#Ep6PR16=y1H z^m?}i$Pl7gmD;_G)C<&vZ>&*7agXkLj^pS2_10NzN=2so;lsU2BaslYcLL4lzZOnp zP7TYi9i<&xyHFxLO!>B{iSYLom$+fB;8X2q=bX;0^_)lQXrT!grPJfpyf=Qyf$>h3 zo(j!yYxE}$FBfKX)~u&t*|*sm^}T7qd|h~r2+K$dm9(b3>8c2mgU8k{d3Wj$as6QH zg$%4EPzFOeTRHYxXnDC>LX8qf-S-B8 zgYO+~%1s&qFiBWW(XW4{!k0=a%ptlBkb6Kzo~A$4$_=xLCc>2*3ttxpcviaAdz18D zB7(*`YV9O3vhOV{Lb&ELsX=NL+Fwr%PVU8o-^$C>>*j5&dF%XWs9|UPCx20THC!G- zZynvk**Mmu2PV`VER|c_HcwWDPRKEJ^bZa}?sxxe^MTPnih;!Z`BF%coZ$vBLD_eTT;l5J=+^B7T%9k%VY%GfBQZ{9 zpWK3-doE_GHEV~Bi?mc0(c6I*%?!qF3+||MDa2AoSSo3UZ{F&%M+u;@Spru%tGaAG zs<=hnr`y}uj@9z`7@9zKk?KoHIENEFr@B^I<%p=V#E6ZbN<56DHqq1(>R2P1p!W4UG40%V zA;w!94S}1p)lIe|vDFD&#bEIzNz}}~f76+X>P+Ga(g8Mdx|&i!I@9sD0mIiTzX{7K z2TNJIO*NDCRPzi(R%P=a;*92lctfafWAV$eR5_a~it=hwm^QGE%QL)HVoCD~1)qa2 z2A@A}H*{y?Ph^hWy2uM4pY7)GP>PcDR_Un_1B@yTE#;_}#+h}qMY?g+g)|)up3l6x z!@8^Faq`eMC6cUwtHPY$j{I;8H+lv6%Vo1tCt^qyntq89C^Xkttn}ow#O0kAWIsj& zk#|h-c4TjuP_1aADM?SXje5sS3m(#itkf0o6Y0BSAl9K1smLTz=QSazfu~On96D8O zW&@qr>I3dVSQU7X^NHJcmD3Z}Ba@eLWt9xJl_z9bps_I2B?^9V(KC)p*iJ+3)od0O zf0(XbntQ>Y$JQOSQge3pNsz=s0H{&f&}%=CFVEP*vN>16#sYtV=ed34qaoSY-Unm9 zO^Fr}1_H6q~?OxU$V0sw?&-3{<{%}KRI zqZzn9DTSPnJ2xY5lxWA~cl8+_7r-YNxm3iEZCTi)({BRow|5Y2MYrEDasJX)BQK*VW1B;X>+y?R@a+Vf z1cc*5yQi=dNStl>?QP58vu5hz^ex@e>3~1=>hkdHNBAe!lS~pocqxgjv1yThw@j%J z#M&q)d8b$fl*MBS3GBr=Aq0ApZ~eL{=5HY5OB(Uw{+9UMF*NBhR-afrc%Tr-{#TQ; z->B(BdJh+qCWNoGcrfSO@w^`V@s{ju8=SdW)mLkWTzzH>O&hHZ?<~x5dr1Mggc-YyN#IWGg|dq&E7B=+Zi}R z^Luks@>Cw~Y(=D;xz{*e#gVj=d*gl2A6R*B5xB$IniLN#_crEZTv%k+yYvq7bL&*W z(O;3=eWeaYCDM%d@D#99_x#GacQ%>YLxnvLs^M%xuJJxfQI)7l|p!H>4mfM8wgfi0zdQmEUe|I(!n+*TCeos|sP=^}- zt?IZzyS3 zAG0CbU&ls(j1D}OFMrf5-O~>ip$Gn@7jvAMDv3K*?naXQY<7Zwppv>G)k%JR`5djB zZy|an**qKj$t8oo0xeN6>kV4)3m(~d!X=dT2cL?N`Z)K|_6!>Z!R7pUD`Z)!%^R&d z>QM+yQW)A;CuqJ;Z7+>gDUpAJTI$@b7e~ZcT#`cwu%T6L^Z;XSCn0#4Xr!kk@y6ef zVSAZVVO46MmujHj>%w%N$&}5O-@m5NRMs{4`{dMqaM$QKL5w&!l;i@o;{(ba$ z!ec=baM(`m2>g$ywK8PKlHZ~QWk5+RcSAW28VHVYs9O+jM21auQ$rvmr+Isuy5Q=c3T54G&s!#pZFoe%-LpoNSkD+~f+I6axZPh=ihle&C*+Ac8 zlD0no9d_96Gk!HTw_gvpD0K_mnCfG_jA4vF3#Q}?lQmZjvr8>Vh44rBCK}2pOtUjx z7Tk(Ut0&ynf~&ZNOOXcNcN0bf<1kv3fn^(UAH&2G89us3h0zZyiWHg&*;jOQ{T2wI z@pF@#9T;!jOFOfCciFQrK)nmn13dP@;b^~@t(^sMu*vvxxthzaD96jfr62wrJYRH zf&bXaRQg0yTbvLUxw)7--OhNjZLA8UUhmU~fbtt|)M)DsyBm5zLTK~x`w8(~W@pLQ6TO$7uE|}2ct=hc$l~}}d6z1g zRx};PJeV)Xkp{~%c60-Qm~+v6xyN=xTrgcIshBQxIbqoNSyt2ZTXcFZVwQK!;giqP zq-p7Ke-AVwe1{uxun4ohVjIf^N%;uZxeFm;nVM*aWSYZ6pxwTyUP7}B>{cf*g_7DH z6Su%AE0VH`&8NiysdNFs4#94ts@)O{4`tJo!gs*`ajcA?We{KhEP?2{zPdyDaI$zD zF5OEl*~%TP#k2B*r=qyGKB90WL=n4`6s>%<8BoEAPjM+|qXuUVG9m2#BVsoN^vH;N zNwQxu@?T;k&CS}f`xY}GXsG!})b~)lIm84S$5^NC8;a(XAFe>#q6}gB?)o>mL!@sj zkWsT3Gd*Hv6J{~qB}F}_?(jqyn?C|d+@`7COIwbxRn?S$&;aO6!gnSjXbgY2#w(Uk z5B@RAORd_Pbz|xcC2dwZKwUT-CmxG5!I$rzU$a2SDZY7cEEiL3c+(#-sdQZbo6Z_R zvL%cl^_h8;Bu0$dnhTYTi#B|IfhienaJ1x;k_)F4TDtdv_RTHokRVe_TzzZ%w}`3w z^^EArrj~mjduP;htb$36ao@Zspe1@eRD2GC1CDXhv(D^^j9bPOE{jln%RicJsq;EW zkx6rCn-2b$qds@>pEs{8R}6mz*{P0Y_qQCuz%)i8(q1qjg&}PMq%FHx+>I`+m8|WO zUV?cqzy-qRboUNuN~M7Ecc0(GPLmaOqMd6ThElW7KFVTU{S-DTC|Iv|cE7jIPhvK$ z1_zvYB!>*;bF=@j+lprwTVNO=bTf!-q(~g=U@_g$jjEBYnLx(Mmpl_9yBPH1hISa% zW1bfg=LKoJ8y}yCJa9zZAGIfESH{I56LAHZr%M_a;M4D=Y91Y1-tJ^RoD1NHYZ`er zZ3>EuCp4~Y#`4L&HZP+wk9!iB+O{hD8^9v<%!=V<#s}sFCa^*;e+#4?vSoFSzzDHB zL=-)}c~O6Ik(_HA=a0sLJt1<)#L>8Dn;;9`l4h2m1~X1TNI2TY5JYBExfW6XY*IXs zVXCK)8`n6Bintw)X-|~HDV%J+VRO+~Qs*kjSzE-hf8TbS+Go)u1TK=Z&rxtft0P>E z(>x}c-gjBHwV@;Hj#kI`xDUp6^1wzu}-+d&73+^gJ@B zH`S=1ysU*3aUz7V51gJke(TJ>%Lm3Va|XV~yFu>$y)!x-N#y}rX=^zCQT5D^H7+3~ zh<_7bBD)#mzRlB)(1CI6mDE&MD;{VE!D+d85p3@G*Gjb(6)1qX^MpLVVdr z`CYE~Q4PZD_+dk@z;<6Cxo>|@wh5N7X%-`l}etZ}Cvq5QjeQp@e;=k(u-LpNLN8O3fTs74V~<|%1hxlRQoZ) zS+R*Qc~CMMlJ<}9rV|NcE<65S8||Er^xl^&)08MCuEdqEpwgLy3;RW6l92&t19r2B zgG`T@`0uNDX#t7M_5hSZhp84h6l(3k5?z?&K?6{k8|tc5Qco^97ltW~aH<}Y*|ZY2 zQCh#W{VO1);|;zI8w|bdJ+$n}!Pa-B%kb6dlFQS5V}ZH0*dX+GFlWTL<1h64c;=B} zxcqDJ(bVwu)SDiq$V^~Ynk!hipctNidqQ3k&@yRr zvDk#iIa3e<$V59VFEXq@!=UtIZvf$Rtm~E46m*y^Prx88HTxp(83q>fi%*$M#A67#bU!d7((2JM{A zsxpvHdc`#lS;?0Ldy>i2O@kG1sg2JEF3GgCZ{)qvzROPtSm4>VK-SS*^6)S2Te^B* zo!0UHmZvR<=NnFF^@DJ4^htu?b6ZTFQCT8J(~5Ij_zMZZ>|aCNlCzryu}HvLGU6TV zyU}O;QsMgvtYH`*W-}iBsrsUJ;Y6%YZbfzt@hxdZueBK(QF1c?>X>s{?TB?U%sg)k zVZ^Si+5*9o5xbo9gb1)MiED~hEUy~Jw5>cn)I1;_u9d9wvVcm=25mwvpa#%ex=oss z-8H9gA1QFpFZ_y;>#6>ZyC~&OJG>mCAMFGz2w1k-B)JFU#R;aDy>bH?)q|Bwd)(2~w74vqB(?os#cFskZ-GGF+AhD@2jd@V zVk6`q)lDk1+=rsfA_LY**_v}wOJBRXv3BTeKc)BU(5K$oSu-4ea#Y3OyaU|?n@+}p zqt$Roo|I{+zVcDrYZ3p9JTO#SK8$ZX_KUtr$9j^p>y^V zq)IlmlW$g9EDHR&#ub_1F$CjzjN=5z38|mqZ~@g!PptW5HNukvT1(HbkzHh($UnF+ z5mlgDdMOeL&VBGk#z~ zbhO#7WI%tzN<3b?4Wf9RsCL5q!>iRLy4%T3Fp%lIvYFZQ=m4vsSu9#@u8vvQ=u-i= zO>cP`YE&!UL5X}1z^<1k^;P<2Y8qu>!v#LfLCq{}a_%${pB0{*>gkm;Wd*RiBUO@m z-ZK|DXnh>1`y3M+@$U4eBMPDCi*+*iAlpoE+JqRqbG+CVKpbF~USYTRkiY1#a0YBC zvLQ(-2|x9SXE6Xs@JtKpvJD$a&U-)JM;(rXx7trgM#bjs886alI~0 zqoT7mtifYJRQ|YOD@75oDv*_8bu#v&$jggk(t$1!=sv;o?tB5j@{31g8biPA!o!h> z%}X@uI_V+`MKP;7oan=3lIc4CC%f8)9|s4fv>}{n<37V!a0&8y)v~PPc9<(2G8w5C zY!-S`O%6tHAGPnvi$>-f-2*_RoI$s)!v>z5`NnUNrf7JkMkKCZ&JY3f&2_UNx9+zJ^W(pP)YQ>J_n9)S-QOpDaJ~;+H zVA%!XJc^itPX*;$c!JiWwAW3iHxi?D>0^m?RuhpZ*ZuIng?$*OBw~%&y zx76Qz4nJAzwRsqhx`>TxNrq9F&0OXvGM**kz$cViEG!(B{ao0}0fcixO8i; zhCZZ{@STNh-0y_UN8-hfeT^OUyq4(!4A#SH!Ynt$!e9UOkX-fx>3pbry2uo_af~!f zyB}AX%U?l~AxTS3qT}QGNfx|>8(3>V5G}E`EOlPu>Tn}Stw$q4#xa~wplko7)=5VL+d0DqMVk6KZ8mQO%C4cQqxhW7{fONB>f}=la>;`9R~G)70A!wl_?p_WVqt-rZ1xYy{Oo}V#T`GZmD?NZCwajQ6B1UjU}^=KW5`Skf5M;@Vs=y zutKY-Dij8K;YKt7Z1{Cfv&JVUw0+Ryy0SAgvyi^nKECrSAoH$KBHFy54M5>XU7YG3K8dQKy=7 z)~+PMQ4y}_VCU_*HZD`Lqlacff{v;;3YQXcDj3)&#IQMb+CuEedAlf z%lib*7w{-V)u3-Q-Xk?)@@}PtPc5XgTD>QlRTF!%w(Z!8CC z&R&NG5i|K97wy^{Bll1yI+Do3h>GbqltWBoQ7#K5blI)x>h=JQORjAmkaLlV$rrF=fqm`wR+?I)=Oks_Qbod%+y>Wi!F-x2&D{@_|; zGhN}~SF6ZTBxb_Px%VSxz)Y_THLZ$#`1RyZ{oT1@V#n{xHVI_ki9%{k>xb@`?hH+W zF`)3Tns1R2+I%Ziqtl+qd#+99AWE(g{ltQ`PNgH2-gpMIqDfkisMP5cFK7SIp5Ue-sW8NuU1`=L^`d{@S zbbfS}#b|08st1tfTJ8mILWOfw9zT6ceZz5sXT^$BcsJLB&Ne6vinG$r!`UE}NY7Hw zFhz;XIR?l&z;s1NpMZo@yc~g4(8mc+MGpTU9k*FNF8ZoE$l1nJ5}&O+qWQ#<$fs^` z>P9}XE=@cSGjulFSopM*Bg~%q=N46qkflG{JRoEJ#O#$$ncgIJpk#@fEov6;KqZCq z7Jri{M|Xtv*NeJBjUpi2H(T(O1Cd$)!~s`|yqs8QsH)G?mcDHa8O=etgUIo9E41WcCN4jM3IUTs961PQr~E zypjj(B-T}#M|A{Kxo0chgYY9Nt8>|H11r;7YaPRVINjp0y@*ZPl?gotOAcuqiUt$E zLPjrAP0OjO-1BrHEEO^xR?xH$Xx2M6cO1l_I(;j(dEvF`tO1qeSBTi7$KO1*dd&qKO z?wCNR6yL?f#o*!hEc+wHvURhh<-Hv|4ov(|bDB>buErWGF>K-k}cSoAV`ccUK> z2b>Fzl5DRtMhG_!=%9=Gt`m1@?5Y?cZ+NzWpx<;GvVdMQ2=n1}Su^yy>=@7g<(vF@1-O9Sba;9l9rp0pmUv z)t_LnZMZ_-VQP}V8^?iVQ-=c0^qB`Cyxh*K?Lv1eGb*dj2qgXiH*2P3D*uV+qBRH@ z`W;?j;T~9XB6gqc{E+$_6WP4f@i^R}~?x)apxip4Z#(tbdJ&R>N> zI^}W18`A0rihWeJws7sC!Nb%H^JeskBxau#mK;(Bic*)%)fs(U~3Rae7yY zLc%6^nR0Gr#u5>jVl`TdjZe8!6v~%;&YC0!S{&w@*56|8%nBb z&s?7hH^PeQ()(Wg8NAJ!DRg?t2msesb3^|>(-DzglnQYM+>;V0EBLjh_BOQ>G|FM%59zUwV@e!gqyt}*!$ALf?JU{Eu zMNCX2VKH!I6(O43lVIX}P`1EV(RW#8eE5lZ>&DmT&c~2sP1=AKo%>&Y*O2X#p2}&>6`ksCj_DBWDVSYyY`Kb2%Gd zS)2CpO|k>PX-)$W-z{YEe`xptMNfH<#dFs~d1n#8p>mLp6ocK@loQgswvbl@&+s?U zfl0GRDk@raZw7N)$a+~*XUmbgo|n+_bs+#q*OU>Vo(x>bTq#Mkiw^7(ulNids5p<*2k<^kAcr>TKPzP# zKi4IZo-1HF1L+q4&t|?$y+-H=8eCr#aQYK@;FtoxOXQ_{+d1$rXvh=K9X)CLd4)pL zR0v!qFmIW;nIPpH@NX z{_;XHLVa5gLOsiu*LD%j=tQ;-iAFx+6I?Ac&#xV*3&Ez#^ln><-+WOn1q-p6PdOC?p$%uWvn{l%*v|I~xzW6ok!@b`sh8t*U(O|dg$nSH8rc1b zx7#=s(PdJ?Gdskgr!rxcUp#~?-=B@?$iGXgFXZyJ>tzeLj02MY{hc$Xd*QpG9@}fq zGiv=|N|<-XG51`_#4plnj(Q26~q9am4{z6Vk@!R!c;+?9yZ1{ zyfPX*A9h{dbSd7UPz!Qb^pLeY8fCv#*;vpl2Ik+3=PsS#bbGiHg@1^I^*9(q61Skl zNxPK}EO(IqOBl9!0Z#)1H}I{+>fI9eXo~`noY4U>xA04di)%oUZ$WMOB|Ae1?eE#J zFBX*|c>+{dGKAtn7H2Q{fAv<-Pp9UwPC<-%YiMBBZi`a``|v z$OxJ^BJ=bcUwcEtCgh5I$_<7B;k%6phBz$OW5T#jSFoMjrX^cl?M|CID%q7H=|UI+ zjjS#&c@E`nrMCI_dWejIn-<5L{qntYRz{rLTbN&U>CdkbTPcr+2sPCq9nr@KXAbgF z0Y}?v#|E9eHtjiGEcZEWJr!c(`%{~xx@u=^x4?$jLG?i%4aJhgTJtV7I98+LFdQ`K zxq+F_jRA7O;LV8MX}`t-{d1go$%BHuRfU*FI=>u#RgF>nL@M{l_xn2ii~R#Y6sze` zFEzFiYO0bw)`3#Tkex*%>$?<9GqsOC|3V#VPK?^}xv*Pk$K)Dk(w?rS4`qkUKwisX0*=S>?91xGeHdFA$yV7MW6S5b4$2O8ve`@L-{rRV>Jae)e zoI84~{U%?gjOZ#`^=gIm0v*BU$AM%eB~FNzV3Pd{W`jVm>y<+JxaRB$2K2|kMmB;b zzqNss^F^$AwLhq+(8&bu@Xs>-E#{RYHt~-Idw=+?J7Ns;dcc`_XZFowy^Tz*^zy`h zs(Vb%L@b;WXV*QfW7cN$>|uQC`Nm~9H_~WQ0@)mv9c%`k^ab(d52j1?#Bu()wVR`3 zRWU6;bnUu5=mHdHW6G>c`AhIB#g3aqSYn(~N=0k1Z!X%%pQRk-4YxvRmNlZ7v(7|# zF^$UF=K#=pz`T2@u_m&I2Jb?$ddmWrEbM!Y+eS>lG@-zlgp_Q#MtTIY3^Mbnll z@X{O3eM)46DmXLElNXeWgbJx{95L78cD|-baOtxP$5HG!t+=rU^3hIV&3RPhBFqqZ zz2XpLL(+flf+SdwEI`)u00)L*EI3vLO48l0^q90s?(3Gl)rBvJ5#2y-kIsFrD#j2E zv6d1@@TgG~N^JpWB=76EKvl6%?NoC>mg+Y@QUej^SdbuT=%~B@q2L~au@-^fk>)z& zu`R=c%y`R*yB}mV1XHZXD3>Jik5RYpKo-E?sjW)gbcDw-oVVHHrV9OmU4E|$`YQ92 z<0Y`Bh1J$+NG+#qazet4NdX=0wA?gw81t(T{*9@+_L(;@(;VdjtQ!`-gC>wxdMcj= zQK|)HGi7%JSB>=3QR(8ZPO|pg*32NJ^k3kpQ9kQ1VEG|t0#)H83QHE8#N{{1!MrQ= zHY>boCv@sIW$UqB$h?ox>}m6T$D3P*4#B4od_WT)L)2`w8pR&{P;HykK^y_>)e)g9 zXk=UTAK8=hGhPAGgSi@x{UHCVh63%m)BAnX)Mr>y2LwZ=mbBEkDy9P;xsQ%tN>VDO zCgv!)Zq{?%Z;cA=F58R2v&S`rE(NxbLW0@55vlc-_a&O13@hIPhmEYy(EP7V(0cH2 z+1Fd-k(=$ZS!pF#9HSRze!rxBQCt&kHy+qWB-A&*)YZ4JL{ZQuo=zo)sv~O_9De_` zJ$fe`6m8me);WYtXpxE%T_NUSpkGiUN|j;`W)hWSkD@t7**=ro?J_qoMDBjEeQV6| zMk+l_c3UCSqoPJcpvl6x6e{2MfUt~1PVck<8H4= z_X(*YCPcKc<&%iCX0HvL*!(kn4cOBjOt#CDocZT_zElft_{k+`D7+@9dO?=nP>Scg zS$4K^5k$V?~t0(Cqkb3T^9Z5$sW5_M*-klb|W(315i4o6tqRqD2mdxRy%h%nvk~XmF=2=783aJ?|_J#|TNU zt`6h(4MXS-Syx?t)zCqCt5aCpK5EV!e_pz_;v`7ihdc})tx&NWlsQQXrMU>cB7&?V zBmH5w*!_Z?9^%{##7KXnXb3r99g}Xo*fn4ZUF0c{uV$Xgr&nT~m{~>g=(U=T--mPT zS?0w{a9qD9yZEUWm{B>okc3*>a}w**S|AgRgdLH0#$~LxoH0Hiv_14dl+hw}=e8xJIpvbHdFpZNOq3n77d){9 z#Kea-JyBH6d;^+w`cCFNc0tc-yFiFD?kAr(CP_19fJrC2klgjF-TPYwF~_gO4IR52 z|B}XOlqzFd%HB^WLs|-rc&LC+rG_Hyi}t>28@MK8Sf@w|qg5VvT!}J={P?Pkj4O>- zpC^C$<>*#JeYz2UkB}ZMuaAh3KifqJWiWV={^M5 z{XP%ep-(~%P)^Sk?X26lmza0WpGOK9uIS8X%5PJ#?tVvjQ66#plY$$suMbjRq5t_DRXZ&! z;_&oGqiG9e+j zQ(h|MNJA5FA(+s;W=kQ{ty-F3^0O(_amysa`58gn2~HeiY8k4k{iSXk2U@WLv*If> zk36BhLXGm9q+#ul@ZDtpxjVMX#3t0-3!}>Btvzt8p^8?Q2=zS1^Zuu|2|<(l@DY98 zyP59q{-|M^Y5WbX4j@qpi*YI4wWusHP9@KQ3VL3ZNiLCj^NjdrjiJZW=&-Z*iW2iXnksHv6L&Bi_bBK_-XqDEvM7HmwK;~zU7~&=&ht4 z>}F)@PwanRIts{;W!}+!Z$}%++v|R`x5c@y%zeSGL38V$??L zxe!WnVLN*$cg_Z%tTq(aeW^V5J%5b&=#ZIwv=Ss)9ph%C5Ke@9@+@OMLbXvlj(dK= zcP8K-Yu{tdXxqRQOZ=no=;yc1{MZ17pZt{0f&TAboa4ah)i5)b?6U1jD_TrD{WHAd zjBT$!E+b)n<9=1q)E%R?g)BnTxV0N!U7NgK3ok-UD4u@L@+#XRr@l=L%|yOPwiGND zlGEGer0JXylSQxquNhjqwm6;fL-iY29x_K{YE38nMMk2QEDA;PL8>=WuZwuZYy?jBCH4P7qh?c8g>=`XfDXL1ttEzVYcK12cOp+tbHfi;=b_s zvx%HkL?G9FcZX+X>_XZ|iEX?zwYKex`}9C8?Aa^{YF;HES2`Zcl9RD}==r@;9=SWX z<)@FyCC}p^k7@*38;)!Y!-5Eob#^=P<{~c#x%oFY?TvY8`*!A7=G<+}eMTidiywlK zuR{kO38pdkJv95|Kjr^KS*t>0VRP$Sw36c_Y2)!jpQV5dLZYEEswvk^nalBLL0~7H~=l8gRfx&u3%R zGeHi(vj|e5`V3#7_c91Zjr_#w^Vvbd&N%60?u2y^XE$`lj+))EEA0m#6R}az&taYJ zxs`t$7c0e_C|wz%#Y;YsZ5SXKarT=0d}(jvA!R`Y#g{8{+Y7>wr~t+Jnv3t^7=N?12I0b5{LCG%rw`Z-;Zxn#adrwdhO_iZbjkQh_#qK+)U;o zQ$3(U?OPl zEZ^xm7N*n(W0!qZM500YE@PTa!8CKn3GVNpP}OTYT_@t!MZ#`SVO)4kuzH@})Q26T zgJ!CO)%|UtH50bp^rJg`7Kt~!iB10K7k-a*BW1M1*jTt5VSTrG;tJhZv3uoYU~Drj z*49Q?10du+)=@<^6D}&J|5v%V!+23Tq802ebyn%I6T+D#ry3G7lHlB z6rm2Zc(`efZfLkn%gi0T<>&Sx%OnqdYS-5)Bvol?a+MJzIrwOO+0-20hm`f~T_{)~ zyOE7*nm<518$cD)TfH<+9<`F3;p(XDM=4h}-Klulpr6G*N$wxD_(x7{(S$LZ^(G;> zHD;Q+DlY1C>HW<-oqUBtfzh2~fb1;EaP=8x3Tim2=td>)T^#ZV-y_Gc0*TA{VT(JO zZNdwAJO+k@Ugq8}`oymMdgr@|l-f^i>sF7KD@Ullb%iMfy|f`kaD;Y>;}^OZOqpog z80}-3*oYVlWR>g6NZe}uJ)dGZqt&1ZaKlU4Ceiju}vL7dc zS<^+InvTYAn@z_G3Np@Aw_SfaUgnmWqO=&<-BjfHq@MkqvM#%zH5)9#iqnmCD5Ds$ zX6~Snq(dewuWz?gr%F0D-K$HMmNgfdbcIDB^m{4pvHeb)+xdqVgLPxPa!P+Not#6> zB{%AlR|s?tDFbeIY$kfh9Fn)~S5NTMdv08=iwxSme`fAEA6nT1vgx_E^OTN>TN|iO z;>N9^zu#F!x5q)uq zr6XduyqQA4D3)S%RYU9*h%Z|}K~ux!FOv{bYgl>}nRe=&1T6uk;g!MK+PH#jQ=E1r z3l?=5a5vxcb|8H)xwXdArg^Uwj3-f7YSo+v=`hp6yko|xU=vf$k<8$1HZ2`9G7e0h zG0+_^|52n$iX-p)@m@b)eW=q;#8>QVwJ3^WNofdr3p1ENH|tG$qE`s(Kd^j9FYmih z38G1rZ*WLgT_f#7Nuf4&FNJ}aa2|HRdzu;1h16Vba^1Dv#A*{9k#=)<3#JN|(;r$} z>FFT%wx;ycSelh4VL{RE)g$&SdO2kU=V3dM$E|EdNuxKmL{1sDqf5~f(4Nt=yNcBav|uT1(H^XX8a6?Hg58i-N02Fx8=+Z#<2n?Gw^kI^LVRsiH0E z{nFdT7XdDpMiqMw6X)^ig-4ZTKGWu1D0o{~?@3c(%Q~6Xq{JTqSdX^xdt7psG*PQH zymyWXM2Q9vGdbC=YU~s+26?+A0)%NzmuY3byua2W%Y6H1EIjn#+egC-^>sy;u#dyN zLk0|EWUy34n%-rSvaqL)Cv<7&WSC?cH)`UE7hL=sX5k*=DznXyadjNccsHCm`b8dPwWl=z`wevo#o_o7;H0i8zg zGPhjAEyhU)`QZoA;9dI~o~SNM33jo@2SKPg2PFg?SO#p#Vpk?{w_rT|8d(cJ^2h+y zU@6ooolD7@)>$V5gVXZ(q-+!&Tmy!ut_@-;+ErL;8(_}jwSxm`cVJBl?ZF5>OU_oS zcGJlW@)S9%&ooT}#tDKHSz3CQ9jG@>A*zGB_!dcZ7_Lk2ai5_Y5Jd|7kWs&sJrAW_ z1CxRf@y{9U)28-~hAP}Whe;xxzuzC8qKII*GeD`1Ni`0o8KI0^Vl<(;K3-aFu&W-O z<=lHzQ3O#czcfw%exk1AZYbPG*)W0SE<$1r|LI3@pGm;8jPP3GEGr*|g7>ihEz{_g z9f2|OsU0y^95KwciNSp=R1`yZs-Kn@%m-H*BCVh)Ic|U@H_Ni#*EF)r#6rSvZ*lpC z!>;yrpc-S&Y>EH@^raK24_a3}-557?D51f`D%UpCTrDv>d27>|Qx+EbF#PDd4P6nY zViR$kwMcxnX#V{kbmCylGlsV}xNuH1UaNj|jDF?8slm-*0?%etMZ{QHN@*QwRH%Fs zJt=$8SX;bZkmX4(2_FGHhZYovm~?p5T{W?wHg*hd7D9{Qo>G?S2_mt*yZ}d4hrLh~ zqZvltG~fKP3%d7bc$R29M}Y*@Fq97Z)!339kyd7}i7_=U4iKZ7Ryy-ri2S-Ixm-e= ziiCgVxNR20v^rDEE+QG}n+B!3$+WvJ{UUQ_qu%tHn!V7{Z9?|dxpy+jc3O93-V0uE z7?wfUgX`XKe-?#!Lhu)t4cFx!u7;UuW*XSR$4UG+HU|UB$CDc+JD=QYlA)uBrbjfX zY~IJF?A*dT=leQui@r?}Iuf_+pobO@`KRAq$*$142=8Ixx!eaNqb|c*g!O=GT*W}I zD4{b`$a!4H+u->g)2q?BV|H0OZq-cKlEdQlRN}y=0{2TQVVqxZIyZ(h%eSz)hJmVE zbRyU{WNsngHRIUx$6+!a9>!g753YR1%#| zs!G9S$hEuJi$OZ@n0 z<2-5fp4Wuh*5{W|a=3T(f>AKhLjD0EMFXDZ8f@+9-1hv!#iWiIx$BS?uB+j$>rzojBlfYyC0eC;<$M}*IzRVKK2@adXCWdho5zmgh%`qi3#y_IVBBWdV_cs44KW0AFciLlLvJG zJE@p>SLf5uG3s)7HY0mF#ohImMsska;%*yn$Yq*>&zV_~q#dURHq6}+gn>JAp;wEs z_$fZle98@OUQKkf2{#&7B2AODB+tyIq7&+YUysA1dNkR6+J9h-(|maWK1iIUh!E=F z1o9Zg^Jlf5sJBE_0T32FG$wV43L(H!^7(`M!3<{Qtr+LE$U${*&?Uvl47mcxlQNC` zJa{DuQhLh z)GsgpuOzl!b5kKy#9A}oewrbC>A+Nyj(}m7<&qq>bv|(fGf-@8fKF6)p~c7w=$yqN*^k7)qVxF>>+=(9)Z9BhCf0LW=J_NI> zI;r`)Qnx6e0;Kx3;YB+0)=%uH3@+~F#N5p+7TPgNn5jZSDGqcwQPF}sqoW;AnMQJn z&Q0(23jfh5?es&6u!+wvi|bMud5hVZ$2F4AMt%P%X3v#c##2N-;F)SJ^)sSHEW7nR z2D-PP!<--qjXowQ2O}L!pm`Fz*V1B~hDGYjFz8D+SDj%pK4zNC@QD<+n^W3V>MkQ6 zhk&Y$?0u_kr9#CyWzoPhmQ)MZ=SSzzejKpKW0iIaJQ1tIyyZt9paRaLO!lq>A@|ZS zKCU6A@UEyQB3RyK({pGPH5+^}w-bG-?GDT6kCiCh6Kb(k+nST*S;Y8c@owK(MDZhSJ!av+i!v2J|Jr{|aEp%?!6wvYPGy z8)C|a^~VZveV2)?v@_g^Q_Xjk0P-`Fq^zvEa?I=gb44ZjV5H+bbf z#~Fw`f1w3?y{E`?H%elW7*I7V$$-QAOr+pz&FzNL+VOh}EB6Q44^S8-wZ>=PN@zX)+O59=~Fnn%bekCdx(b-+qU*Wx>JUdgekT)LZYZeP9?1`v`bYV|#GbQyd36 zVd~|3P(-MQ>Q)m#GbCHriwP5JGd|{2s60ob?UU@Nps7?e7d~UlVz>m>MAFY(`S@Xl zG~kyf^Q=MDObU>(H^`sg!D;QY^{z*1=rNXHT~IndrA7L4$CgUkD1IG$uQ8EGwc~x# zj>=vi$A;p#Eu1K|c1-|Xxl@s<;Pt2}*>1J+- z#8-mtjCwiblFNN}tjUV$VKcQqzY8F8uWhjn>z5n(qr;14vjvFg*-NpB+-c8q5%`V= zl{xa_GN@eHX!4c?Y1{owLIO7|&68AgJEcjBFU-p;k%BD#0Je&xgV!B4N0j7Ywwf^| zXt3rje8WW_zTnj6W8F3tsf3vjMpB7@5)jeW?uUCgMttdu>4ryB{tLoIxj{SQ^BuM0 z6zp2YkHUrW(1pjKdCR1vP@f19OWB7TFj4zM+pKJ!=;c_^E`W+ z^r}F46UAFau$XQ4sQ3}G5PH0EW`te+KQErQi^zp->V=iPgqL)@&2o)?!UDMShdPZj z^48v4fr;MN0ohmxD)piE52QF_575^8?|0|#nsj{keR`&;(;cMf?q;gKyel^rXy@!!ZjvTkFg{7#h@PLha2;iz$c#hwawL_CMuSVuw0 zZV@<%EVm0NCLEKtJ0Nn_>)#+lqYNJk!wV(`x=$+ulVfQo_T`aes=P zFV}}q86q0&1+{6v*?;drgIH=(f-#J2m%m{?b0lB!`*t=9~m20rxf1} zz1K6W>$&Uo2qTnypO)WmStYr@uBUuaDbdZJteVq{t-^zPt|y`Rno*5FYK{5r6_EXa zK1M=fM9~{-A9Br<5xbk(9G6ae1{cX@Y%Y|&NKEt3Ju5|!wAjyg(iq+VU0VD zi@O}pYcVmUW|5s>UIOhXxAhA7M|#h)x7S>|%A7C*&q!seT54?j*A&0n$=St#!*SP- zdkBV|UhGNj5cNr9#6)YzT2)0DW#u30o*CL1!TXOGUsuZ1_HKrn4Zjb9=-o4OB8*%7 zS|iZxcVjW()KOXPk||d>$v^3aESEVt?FAnDeWTs~9b(J|@0oFHJ`3GOx$r!79SKuh zWN_v2Vk9FO)AsO*)DNt(wNwO>>qnQmU)nDy7{*g|cdU=^9cuL*F`7xwjt&AjrUAW>$l7Ro1L3mtAls%UL16XXdHm9x1WW=x4%u>a>N`Ei@qM-M zf81>V&8DOY3CwD7*89L! zq&sV;!Npki_v<`;m%5>jlyIi@60sO>rn7yyq}k)F;}cr7T{*;<DIo;tj6|eX@C}=$rId;)_~vHC|AzUYXs(G=Y*9DlFFe6SBFiK@RHnupC?S8fEkq8Nc)W3> z+dM*u-t_>jCG!hfr8qq;n(5wQ0cyxq#?Q9b3go84I$qA`{7AQ)4IDF&EL$nlF9z5{ z-GqrOV9*IJ{6eZD8h2FSOUi_=y3UtogyvWC|B$!GP9gGenl}X)#j-uZmI_z`{%Ilx7p53gBQmPP9(#O)o4yrFH7}*@o z2-;|v+wQtSr%ugCWF6{y$ErAvOH9<4YQyJf0^k_XKlZDx8~o$JU`B9QrxY zZQEbAz8Ycwp;;t6@_10E*a9J1>s)CGQoO?nAsL3x@I4 z$f(-g5IRso;XbhXH?k0~TVAKkz(phy!>gZXTHP(LmfON}3+=!kM}rC7{bE)KoF^FZ zxPj4V3rJWf=RC_F;VER-5kPEl$~va3b$kTO1G$v$oxM@QZT*(V8}aU*qMBQ;9j{57 zl{HNSziI5W27zI}xG*&TF`0vr(NOFzl-@gwX?I*NRu1V*D_f!yRV#DfcQ8rbk-=I6SN&_9_W8G!;9^N!ni)^)t)UocsRfYRv533{474R5abi zxocsRu!*&(;HF>3zpwa1t0>1p!m#H1a8wM8E)^7QZ_7<;e0ufsMGY%iIjqAaBXK76(uPtLYXth4 zdoZ|kV*{{GRoAt4G;)uvQ|W*{GVp8|45j_V24?Y8vJ}#hRz(mT{p>=?)sP|Bp{xN64kD95Y+We%!kdW zW^6yye#PNc>p5o>c`W~E-EX`$Fv3rcvB{<(o^p?+Ztfss&F64y5e@8xmI|6U&(dV53_Hcm9s3iFMd$<-`m8g3 zvZ=P3R;vfgHX90i;INn<}2>fkkPt#46RB?vfq$`pkm$uVgROc<_0UR+GSF>DuAoI zsc*8ydr@Y3R;*%GAUjSUEO5aO0tMp}lFVATkG?V;)l6z;4$x#uHxk~bQH&-e$&@Ud z80kD#qc#Fx5WA;r(~}K-d0&wYyj_NQ_r*PszLUg+Yoh+54}R5Qmr|l`QrjNCw*?k1 ziMyuRGlxU7-s<#a(vu+5wyCp%mw28Vo_z^7f|B=02#(2KjG7Qz=&>yP1W@Tzy3d>CJH-9s!9 z$WIi-qjMg(ZDDa+(aY@l_$ii@>iB?sOflzid7fo!qB6&v9UDIdj36$V=X#<7HlFpq zU`PNdC$whsze~23QroWil5U8RvlAhsBIxIU7%C5=Axo!nn zfX!934gumkAmoD1?EU@JU^X9+{9UEczem7#Li6mBDPPAMXV zT@ukqEgoV5cQU1p4{5?Iw33qaxACKf(_IY&{IBT?-xuvQh%RjUN5S}wCUe8>R`ZEb z+r1JwHBj%4_N!}YaGjuK0~3hIJc4Bv>iUCt5!~BiP05SKQvD856)6=s)&A!Y;PD%QPcZYv#KH-2NoRuhuEs7H%?-0Vj)B$W80h!=%7Z`GMLHk+jlW;X z%3_)qEhLAI{9#7zQL(2tZ}AI#$q!?`$YzhC1CR#Zam$~(gJf2xnEjpL<7<9oONrmX z9}R;}b2dwJ7L%Wh3Yll*+4v_8_URXWNmoQU~1m%IF1!rnYMBk8(F5P zy~AoK!X|oxAab0<*`*m-o@G@^KSHbhLk=bHEi*7WIktbLN^w-uCjr}IC&B>l;7}ZekD&N z9;iV<;_o6h`+42FVW8cf7%aJKVZ#n})wng>Nj_jen)Xhbzvh>X@gLn|0Ss8cfCh90 zO%Rn#+;2q1e#Sn9Je^OUTXIQcQpeDsO=)(CMq=H6BSLFOIg3?(Q?VXK8(|79nW+hx zxfi%K6*zl&-w1yA^X7H&pyxP7GA?e7mxw6GN#5@DuJ*zO1L_BFw(Cyjm{M5a_6Qwt zN?*bnpPRXjX^-gQQAA>0M!jBV<%2McmM^ZcYdR`N&kqopzS>AK&8rkxi)P~Kz-NZD zUx1RmG-EL~{U&CX1r*8=7LUcZoPB}5$M{6jt9g7je@ zvjtImtv;w`D;0bPkKGulV=e>p&=_4?-UxHXuriBDhi?u5kd?gP9*1A@uUNfmKMvRU zIg1ie+hwO%Qh@*GD#H;%EHh897Yo_@IO*{Te~^5S<%HUob%Mr!Av&Bcxf_qzr6Pws zIbFkXf8a{Uiwv|4PW7Z(*G5U&no28kF2USCy0KG7DAR)H6OgEG*0b*y}16p6*62h+sGbx*{x#qKu#&bR(k3 z780BE)54_Rjg!%-wg(~pjH<+plmCtPE3FbNskPn7D~q@#mBrT*i{xJ)KY$o8J+$pK zd=(1BZ%_GdyH50A&@-ZgbK}J+2S+2k=B3$#JlvUa(l|S#y=3t-wjPN;731+IjkSl> z_bZFf=#LY(tVTj{=+MAfNd_A>Z@U*|4GP_0c#zK}mPhQvN`Pu3k&mN-vpH zurHlh-xS8OATwD`yo5cgRh@(a6y35#EOHBxANYeO9g{!)(}U`B&KX}nBKmE&0D;pM zlb+b}6ystxiG?0z@1a@G6)vHU_Y1#nEZSXRSJ8^-*Vbvc)^r-`rZ^cxx`kgZ=^B>9 zK|I0k3wio&RZg(`AFnq-PPMeh%r4Qy)o7MXhFmr>%;F_5btXG@L-(%#(5(9rJFwpl z7n}ZatK_>`LK!_HFXV6j#ZE=uifz2G%;nm08(NQcWt2eZ6Mf(_+ZH1HxkTB06;FJD zw44CLy(p>v>OAO8+m%@u1#!#~8e^(r>@zBRjGVfHZK9t?3^I(AUT=5a^JJV-|Cc~> z<(DuToElbiKIS#}#6xXps^PERO^vC)ZtHQoek5P3I4&R zMUJz>AJCAX2Zi>lI_yR{t0d(|UOzHma|msa$T>Qh=>(Kbm&Te9*GL{7hRlN8wIp}6 z*b=0AU@VqjD5%cBOYdf)NZ6cYiM7hCg8_Y$!$f?}{QP9=I~BLM;snQ*dRO**aBKQ| zp(J5NHHVg{nsOniV%^Pt#q3mbF?i$pYX#{JVO79|CGv!5tN&M9du6r4xi~99*SgJKyNg2GqLPtzN$Zd zaa>dS2N{cpeK=Atc+@ z`>D;x-;H44mZ0uwDuW4?*rw7jlg6J8YfOp=2R-=xxIsP^hH?1G83d z^o>qO7SSZT=X^b~gc5Y4r6SAlAhPhX26$Tyn){ULCsA*QenuroY{DUQV|Iq9`FbZD zDZM8-az?qDx7&AaEZ|-ELDm z6Gx}-riQlgAC$e36+AODkP-Mn@bWUKxH_0Jh}+vaiJCeZf46jSvj5H?3Y&k<)QwB*>n;)i5md1v3 z!uB>M|H#EHKV~sAefX=y&;PIcEdOy|o1Kvn`2Qs^b8rG#SXh9p9IStL^bc@ya(zUO z8OY4?AKhO)%ZH4OlNI>y_`mos{5$9W4gX`~!_HqD{{lM`6OfC8?Vq*&uJNq~^|KrDh*ZE8Tm2-aB`Dg5h{O{O*$Nk^DzvDjST&%4B;D6h@KL54%SN7M|U%&n@E+2XRJBFF_KltzZ|6k_) zf7kvu2LI>lhwp#={LBB}>zo<7DRo{tJKO^l#4p|MADO$M}!(pXB{5i2uUB$@mxl-^7n#|5FJ6ga11AZ*lzJ zxc?T%zeVxCoBm(=Z<7C)|Cj!E-GA}F1@Qlb|4H(Hi|Bv#e{KEcKd|n<2LkK=oo6zp zcIHkNf3;jp4F6$1o<$Be7RLW_9~Jxe$g#9>GX4Jd2y!wNH8r+3G5xO^$im3X!2$gH z;phMFsreJEyv>C*U3Z?nQX;Zg(JyoZS2qE*L!5!+*&qRT&;l*shz&NBh)fh)7q#P4 zM#zyUf?{sdMN*My=7V(vABuP|a97rro%mGvIk?ss$ zGzEO^FOurg#Q8`~;;m_@))5EY2uiqDNFlkvzia^$&~1m54-LB$ z-~&NQ07i@|199%>R3j>w5d$<(L(+Wea`Yljq3@2B0$Eo>kOOnOqq z=?-TN?$r^L41qBS@TUa=X^O++{aYv)IZ(&pz}}$x7NFqko+5od1^6r{la>FEV= zfcL6Dyl&dv?uhRX85P{p*I&_`r<9Nv6 zH}9rR-<_X_4xxo!rBF{dp?aXV7@Pe12zZ6mP_1={oH@~lxkBzhhN>+>AnWkwuIhXc z4Z?F*Z8`{qb<>4#?aovC{{EqNe#e*CSm+U2|Ba@x+J&+0{Ww9GgPaM{C%q-r0k}W?(#1A|65t-M*+h@9&i`|F(d}Fe^+YMMu_(} zBPY56*!S;ZZXk4_-(`QsreJoyePf1cBsTz!^`h*6Z8!i}&-CK~Aw!tZ9jm)O%=X^1y=xUZRoS!!3h380c21C*iUQZ;5$q%kmd9T-RQ48N*LXH zR+cZ)+Q>QiHYI6$28l|vNFCnDUxWvpQskVt_F`RYR814VGpQ{@K$%YU)& z0s;sv!vW7r0>w~Z^NSAZf@>f>cp*RqTg?3?G@t@O;WG#sP~9r{8`xEck^nZP|8l&^ z1W>`LCiUuq1U3Zl0M^eoNz~zjIfX&>@L)bwtHWJ=0f2r~^CfF*YDi#X%gIa3W_BQ8 zda@GrSJ}qX%YwdT&%C3wB~-3!pc%(i?Nr$Fph zWpk;oZZ!i3l(oEj!E~2-{Xqk~ph~jtXxRZOwq_nD6d=1x9oeqBm_z~PT8&*a5+6KL zLyKD7XMhIb&E{MPK++i${|OC1Q>{o?g@z7R&F=&`iO^L9zJ;gL2j0El@brclf;*LW zIxPxTjRor{?GAe#?MVeM2wfZO11PH4OoV~m5y%7muF3^?83c2I2_rVNTY-bX(V>!? z^+H?2_laWx%&?9I)h!S}2hco|gU22dC@)hKj33Jz0F9%mSBA*QAUJXo?FYVxS9}99 zK^aG2{QkTv<`XeN%m#G;WucRWIF67VtXDOt}Fpi(_=MrZ%dAfa-U)k_u)V9P8zfFMe z&BI%r!~RyT#P!Wz6&^=h!qI~xnjZA+8}7=lVnyLZ>t3hZTEYW9N6b=0Q_AMppnBw)c0ELp7pApE+r8f*lCo?JOHIG+iw9LY7LyNeejmnB%L&*>^m2h zCwaXpjM@EFuPzUhZhl&& zjw(3y3=xhi9dEbFskatbStVaO8Rqo4^@ zf+D|Y><%LwJfO<14Ax)-w2beeeu9urTjea$NpshsrDjlnx)5#c`&cQ8b42BH0MhpW zm>W#!=+M1;Kmp(6n?XMTJ0QrH=tHXOAu@5Hra~u6rW&hfB)&(i(4lLa_vBr-xmGlgB3c(4nSFYnL{oGaO z4>suiFla6AQ;tdSG-Q~Jf_UlVv!>&$=(Ez$16b(#voy8up$-pfdOJbr-z-w;q=^Md zBhwPRqvChcRDgzVf;TR8OWp-Ct>gNJTvW%^OHEC;FN;ntb)9{^b-ZCwHdRR-d<1;E zZM4dqIzj>Kur^H;dlq@q+Df4l2gw8&p)1Hx|1<_v_{< z{B={|^_70&gTOM&XZ@TMPi>Zrdy>Q(SAKtl;oXrBc$uz&5uzSdnId9Trv zAO*y{482P@`K$=spDOr_z3RigvYmb$6?$DtFJm_nv_4DrQ^Ygxty^zWi=c?d2RxAT_b1XjKkuq5{mQPsx2JEi*w9dRI#RVjAw7OZ z0g(PC53Md*w=M3|DFl&2<>1@P(^9Y!Y(IoiXd6~2i(%42Z;OcQD`u+brj^N;X3Jkx zI7`RHbIRt|ak~y4+y+BhWEiP_<$~k+5?n+qg!O-n%KtcpsLAXH+SE2F>V0<@PsSCa zV=j}|mUiT8U(5L|x9M=Ng8ir2*?uKP1QCPdbEZcv7jG(7DrlQbe?kRb zTOiqHfMAx7NUS&h7agYfn4Oc5!DI7UFb2hK{N`aOX~kGVm3(mt(*F-hK(@alpd>U~ zC`Qr-m>G^?B+IdGw~KulpE!TQ_tq48YNggyXm3A{N)Ad_KifWieH_mNDtZ<`nKZkV z)=Mdl8jSdM@6q!*ER+PE6~+U8&5G&_D`MomA!QNi5O=q*pA3rvk&2t{;@rU&suzdu z8Ai5oU!e^)3`V&`KV>aeHU}5OOzjyDBJx zPin{8BtP?M6q|tsYh)`9#UKiHw;{XcUK;Ooo5caEo6h$>lGAvmgY|Z&w0NE};niMj zr=IrdW{J0v4Oj%=xU<-AZJ+k)&;35x3wbuS2kIyEpM)`w--9Ia9A@M$Qsf@Ok8TFo zaannbtg>8|=rlZvy}MOGp6$BcsJ<Y;%6_{xRX`_oU0EK1#^g1te9x&#`=elwRJY46clVoam=g914CANziSmDAnUXB@jj zp@`Dz>R2kfaDmaNy%vA^;89`1*$)xbICO!^y#Q^8@`A|#g#eX;ZPi?x&FULLB%GcO zEeG1zS}cz$X7R(-xQkImZVszk?7w^5CGc3+!DgG#f{Sn3`hwza4D?HnuS__>obR)|B_Vwuj5y`X!1p$?oI^ zB+2%E?et-A1pSwa7fh)O^!HWkr%~)6O54u@*VmV6)x59^yGo;?Ur!yT zjnbp?X{U}{W5P3O(>-g5`3K9`^orx!CG%ROvqaN9rqb+T%SRZ zG~`*={WHX{Q%d9)ki zdbm9Cp~A>*;@EYK^C#oEzyci}GbVn-293}Qi)Nsk*)G!2ip z-yeKwoPV2gN*4Zfx%K&O`1_xf+YEa%yBMqSHJHd7R#6v}E?=X)B5oJt-zG1B?loe% z?pw7=5mp+t@&42;vksvLWv6}j&C+bP8XS^NGTMd%DDxGF`J&veN1y-v0Njnvt}@yeLd~w zV)JFbDrjq_XMVf8w_T;JUw)a?naO@cs$8TsvUhxh<-(Ccv0{V$PJAOa54SS)m#Iai zQ+}$obreoB&?}?`MDCHXS#DF^@Xs4vxyu*nAF~^xx)YclEG(i?;b#+y-9N8>VR+Z3 zq>QGn_In;G7Zx_0<{L77uS0ARhO3*GfiC43(T8K`8q5Qvuk9YY?4uJC^v)NIp`$2OXJ8vmDe$L*WadS<7th=vIudEWU^eK}%dcpn7Kry-%I@z?7^;N4z z=Ppy-13hX(m0A9eGR4RDQMQcDSd=fDbOK6IX(HrJ_3BbFE^5LZmmjv=Qn~Tfq^n;# zHQmt1RBg7Yu5=A#kv@y1#PQvu+o|~*L_(!8c4Vigq3yI-1do1a3Ko`EsEzRNZo|oArj%e z#$6qL*6<#uU5dU4r-e4qjG))4ms+!Uy|!=JE1a}leS&9BE@m25YR+oym#bd*?4e4Xjmx#A(M1&6@4; zi94(FlIzixNQX~hi?^XvtizU_?xf23R9fVXDpt`cg_?GxgW@MnB09 zqa3yqGTIHhmCl~{078BWf1BtLA~DS`I*}(TC#nbG*Wf%z%;My?t*gKV1c!wY;@nWRPN zjmu%^YdjrZ7k)LYXi>~U8pB>#at4bVh;3@A9@TBOs-5NlaNH>af{qSO8O!5;hxPlY z0O74QSb4Zdgh5J;pHVe-X`6#^R0R2YAENKL2QRImwBm)`esp_pl(z*X-5sKrV%3iR zOvDClWt#c%=A-Oix8EL9DA8hx*@g7~oa-9BlMt!jv3S~V-$5}XniI?`InQnnuG_tb zu@nD72gA0GxL&^XTe?btH{~O`l_{y$IQu!Jx5M1CJ$axl0-^ipGM*K=))CF!LPQ5xDHLes;a5UufiugV+QV3p)9x5}TjEklq&{)%WCgUh)=Yd3a65 z%IPsYOyfLR(Wi@laE8@c-G_C+J1UNmtLGu!5@~B3>$Knq#C**`Y?~5Md_-+{PiHH(r{1zq8eDqEOmZ~gryG1k(`8Ac9_IIp=@ zg}cz)qATInOG(I#)|utION@@W8vMp(NwQ;kh4yu+?``b%Qy*X7Y4P2R+$DjwIuT<( zT|r`3dsu%j_uI~xhTKLV!lP~=!n@cf=$X1zgUaM+LhsO0AIV^Oi+q2{kO}>gFX6oL z#C*tyi1HI3%o2nL#+q}Bgy?{gA4&CY@3UKHf=hzN+ z5EVYm`b^#f8^L!@OcLc1*jCrzMvZ&OwXGn16H$q)y>rX+mLMATP1iZF%5;8$REY0j z*|1`@WYjyn&jU~kUjl(gE}nEuUX{sWxNeMMrS^mG&$48rwxdybR>l(u4A~go--B9| zZu~gd@>6jrhxQDMCW%Rk7WooPw(@kY7x<-p?=C-oMGSt&KZrNr@rhoEzm1S?gz7y_ zXdL&Lnfzz3jST{f*@Ab`pc^;jvQL=$JAe8gWTx?r4fJcAE!-pa>x)rK<;fhsOFD-Z zx3Hqlw3f0kg_SVlQRUUEQ0ysu_gj2~W44Q}ww-Z$dOeBSv>JA!F&>v##gXL(=gp8+ zXo6fe)lABAW0(6xYiE4{1H2M@x$D&K4*%^0r-hffZ)_>!{Su4`&%=rC{Jgl1~JYR*x}XxqIZH{iFN?_w8zy#<3b}YuSU+7umE1Z2k9r5T10Uf-!p`V!gPn4 zEaP2RRTe(pc|%YtG&-ouqHb}s%e8$7&Kz2X4f!y)qe7}ZaB)^>ctPm)F=WWmw1hrJ z$<32|Yk9;+g#!!sp0MCq!;N6fv&EHoSwY*5Y8BegKk=QJ&GFW?o;?>x;i$r$Y&Q8i zY!HFdNvoaMH0!gvd`IQLBW4T2#IL93^Jw>T4DM^suUYP?b*WwtY_NmD zP1=46|M=V&bE1f}W6`^}G1SSNG(QFZxWAlyxvTrsS!A?>*OoADkEWeExZn5lFex{A zP4d0Q^DNl5W~G(*Lv6_oy0GTRLli_D%E-y1k3W;O-vysc5%e2L;?Ylrw2a@F=1kYb zI=ZJt>#7$}uuEz7<`|vVddy`Ou$)>=dE}`s6ql=x1rAR?yKmKM) z7z+-5V8v_76v;}P-8Ckgi{LWs#H^|S3FlEU*7q$0bB4`mO$KN>Ry>S9hG@GASt+Lr zc8XN)OqQ&1HZ8#@6(P0H$|A;OX0Zwxesp)Jeq5Wp+mZr>D>Oto;W<8~!Q^&5G<^D4 zQ`~JUeTGf5Kgj9+fxjBhgVE<6al?)N05qzW+tjAwy6|3(UT0s-y?FuYDdE!nu@;;HfKdA^SL!v#J z;zCEyd0ExDX8)Vx4M$4ULi?jtWKRI5B3Xu9ZvBsK4;P!t25H83Kxm8mWSrXv@Y6Jy z;lwNI`^yr=r!nW4i#*esUU>95LRu;+EfPqpx)VbVnZQA;?D(cb`GAws;e09i8pNG_ z^m&+r9i&n%HkLRyfke4u;~T3Ofqzl>y!uRDzEt(4$1UKPT?NU^<<173Ss_~5Oq(Y=^^IvrrIL{1GbJ(NMt9N3vX>cn zq*}CYTbN~g9P4pn(tk;CYm@A@Vv3}pUc|nQ8QGvC8|(=)ssyor=|`$fT53E*Uc=Gq zM18Y7f3We50plJJ8>Fcqa)1e+KM}=+xksvWvEos>|2NdqgH$2TZb7aeC8f6yZEhX0 z&8+?WFgu`&|2!yM6QwXz@b)`(g3mpi1dW0)+$Y++&o-$=XP`q_bObzYpYgZTT;DOG z)-GVi3p%&Fj_3&cMvMO%<_4~zzm$FUdYded=_EdM^vgp$1!+EtoHiXUx#DQP=M)<@ zP}#|TEFxy{rJavm3Ix9q`q-GYhw#q))X)C0a`1YIW3)tH| zFB0_lrbV$OcA|BB?xZzUUVbDU^0a_b)YQs7-D>2xBI`m_q3SJaRd`EC$B$4RfujZ7 zmu5x|4`u_#X}=DlOcgNy%vh=8dXvZe!HwfCas91WY7w7X1gT{>mzAMlj&ezJgGMq1zFTCYFmjtrp1!AgBOUmey0?tK zhoi5CpIFCZFs^!zPjNmxPj%dTRQ|nd>CaK9DgK5hw{5J11Bi**syDJtRk zw&~}+5QQJ3j%$@%+Ix4IG@0Y~4@U6Zf1+(VjuYymz_FA~ zA0TXA$*`x()%6jRw<{MGxSvKcY4m7`2JC#)njcw&i`I%v1HI_T zjUN-j6u?(cHngS4e~+KRy!!A3Ll^a~c;|id=??S6WeX47nFj6`f(kfchGb_5TgtFK z)OOUdzo)Hih_8d`kd>+3-}seHKKe8C)c?%%SqwsA{)=4$Fp-C*O>nAtara!BwM`p+r z=kFUuKGzzHnwDH!l9|fg>chHkO5?|MUzclCGReueOh{`@Ho;5c4UU{d07cUT4jQ$D znGlH(kv6jxaDVOdc$2^G(&V?$Y=)zC^be+zC_O}uu zuc}JIag35)W2zjbZtn(LLCCuDJN zjXvRH%#4Fh5bp{zg99Y;wRul%I1|ECh9?^t_%N3IyO$$N1|OA|4eksA(u`;K7N>Ef z=tQ>f9u5Cj|F5dlB&qS!6PaN96Xp)=3S6NN$;Ujhv~^wg9^=WgwA&s$HpUcYm9}^i z8O3Y(*~OJI&X}I;BXqR=fI#h%0T*Y55!}38_&P8a6Y2hln6b6puyjufTN`cg$tbD? zimaGeDWvxXEcChG$6tK@doO*a$_&;gI~Q2^`z+%3t3Tc zYVzJw_uyzC74||;L^DFY<6X;{IpvLwlVrOXzqadtG(nywE%J52Uma6&1@5?7>7VdH zq;zuFWii_vZnhgU^;5uBapf!SUe!If&-bwk2JX7*;_6oQDuZpeNA4Gkq+tYX*?3LQ zJKTbcHl7L}6NC~MSR-@5S@Ybd+~_g&OYAhIuZgDyPw`5r>PXZZ@L)Y8%09VsTh>Q7 zZ7|cKYLviEcIcWj^+66F}cmvVG`k~ zwaRMnUwL2`@utx4T~o3Ho-~}lU0JSe->dN!a|WkTK9#Q2%9KgG`aEi@os$qlE*t(L znyX~9L6xZ=;Zyl`W8ZY*Cs{8|7qUP(`AU3XrY@7)%Kj0$ub$uXnf4L2siQMCx2(-D zib&;Hm8CpSArwLlpONSA+5#!>m=rHA?O%vyLXjMAMZ-J3P8FUDSSMzNM><7?=Yr8|~?qUJRUjMDtzO$C+~13Y51>X@`B@rIQl}SPHGu z4)bG}Y?95aDNPilo@HUqg?%HB?Zdqyj8bc|X`FsW}Z5UbN`Z5N(LM|#pV{X)Ii^X4%5 zN+12Df@!ooHb~@vg-|taKyc79DHv}qj z6rNc0uqzwXJB}hmHo8c+`;tTOkdun;y*LNGg_g@9+4AQkwF{XA3|EUopOh$LHnxUN z8}+r1`4LZ7(P&texQun&B2d_c?1DHxB#PoK1uuD!k<{RN^*>hl%Aj*6Nw-$cSbL4{ zF@gIj`ip)a;!oV_0tQsdm5e!gbR!M5bDr9=&g7j-KiTrq589fk?`$S66S1`7U^MJ) z5>GJS0p~077a~k`UzIoC##M}M?dybW-({2KQlchi!63u0h;d^9E$bDV~wxr&6DY4*H< zd~#Mhd5Z--_i$q4iYd%tt$gb*Umlaw9=v@;oA%i_MuPfB?q`eq>UsNa6ZCj1v-$l; zxrT};W(1}Lr2Jdagm_Dz+Rz6!d$e5S<@{k)2~^u{^Rp+=ow%Enwq&9SH!H(igD$|k z*8B5#Bp=lt%4a6$>7cJ*_C(fyZ4ze@#F>28un9A#_;PsKYT3CGaKsCb+HhCua||>Y zPEYJy50?>+Aa;qaAvyIoo+%2mR;Mf4p?gyEFn5W`Yv_k>Z!0a=yLSdWG9T^c&T?$b z6je3pdqr+THDwbi1*p=hP~tW}tqb@b-6Lm-5YD?40dcTo9~xu9mt-=ft9VIM4D>Y? zK9e1=WH3E&n_6F`pm*AZCN-}_*x|VOu-RF`OlC#{B)DsGf?NuX{N^CHrmTXQ6!O?r zx-?g8e@eX3&Z!eyP5HQEy_zMRwmDzxeG~?bAT$k9^Q&w-EPAzZ7_Pp`+3%dCDjGR* zD38;wTMZFk@bUOau+o!3vl89YG{*);&3xCcV<^pbM{hLVw;!_T(5K(k{k89g)Dxop z?%ul(_p#p|+`eSouDXq)W)r;L^NP(JyQUP)ZLfMEY-cJlLg`V#(`n#3&G zoF;|-VQY4@+J~ZrT48rD^Dl%Hoa#>#O)WO?9dE#i8R-y9WdYlPSsfR#mPei?5g3V{ z`?QTpV6{Ph+BnmfyKlp8d1AFNn~05%%dWe2vu^n@M|qbHSKW5){d%?{^Mh*5LsdDM zOTBcgo>_Au{nm3V1hbQ9D*KBiZ7Z85f>rp>?4NIm+%^%kSs9(2TY{=O2V51e+4U@M z42*!r8I4+Rg<(FFE&q8yH^UiFAniy&E+@-dB_E;x*?~-pqGQ{%m~MgHJKKECtmW2s zm~4aZy64k79aZ;D<5r9gK0TP$O?$ugBw~;ze{`*cT}LtDVENT1`FMbjqIN3bT=Q%q zTM+Me4*AD}!aZ)c*GDiCMG-3HqpWKr-d}8RrWaPY$-D5o&3XfO5MF!OawnQ+@5VUH z5_2BmPs^(13u-I)7YjT+@eW8D$rDzZdLfOz{OVv@Z;lVm)bOyHaj08C@LA%e7(dL> zHXPAFWE3<$*seCJUtPZ>qorEv9Ogf6O;?9$BNmkP!+PlT?GW@NT4qCE9tX`q-S;yz ze58*>%VfK0%YO`uOQ?7lC9v7`Ml4YHSNN%B51V`r6SH9p#qSA`X`oSgMoH+-Kt?`*$Lb|gYBMH$iSD~bsCb?pl z;ThIS#e;@O0=HEp#NWHUO-%ooiGAU3cKZ&& z&6MP#clXzrT0JD|nvL`kdeVE`B?aT*_w- z^B%bc>^$zT82Dr1tgI*FS_LBVP12@y?daW1G`>0Jr%|RuHs_M5M|HQ~axtK`(7jS2 z7r^aY0<&-^hMGQi3+|QPa*cn-4AvHze07?AFFg$Rg$;eYaF=m@L5sB$%C`hM;|v*Qoptu=>kUOqyGXO(Q%{8_`8t%)aJ3|JY zJU_?@cx!OeRxwrH1rb7b8L6PmE>AFSVqLJw$!5i!W<{k2;(jS^DW(u3K6Q8S?-ekc zQr)^NJo#Xe^5o`MYp&?FaKkBz)%F*WN+gDP&0ju}QdB@aVpRvxqG>5b6ER$TrHdlx z2_BFRKDJY<2<$!kIg4|5=^I0I9RW!Su&;a$rYc7rDTpezq+X8GjgWkv^H??P z1)atYvm|O9c6;3M&GkH(bJAEz+H$!A3U$=$tXIx+Nj%1rD z_YI@+JW~Q?zOm`MZg1>+`%WSWcNajomHkS;8*FPi#n?@5lI8diE5=0Y6NGe>XR`Wx`)T{^QOHzWIyn~pZypL|&{1&2E zS3CXa;H{sR?#qr`wc;dRh@!RqBaL;jZk86F`$Zhb zc-p-bJ>-As-_7*W&g8L|?)RtZgy5Nwo?WbX*;g*FPn&Qa?}N z$vT{Cf5It#tULYLU71<(8#R|q(W}xvgHecA%ab2&2(p3Y?!$N9$D^X32Fw{h?83~` zyr1A+R(Z_A%EvA1)7|s?T~9s?R*=)Tjuj?(Wb+y7lbH&2Pc011zN6lrr^O_G72dU? z##?>A`_w~FG^3f1I#lf8v4>Lth1RnKFD|Y_<`?{lFZIO28ieUiYxu;aF-I^y;8Muh zPSf#y4ts0E$O;i`1^b^GJ|_%W`0U}&aR&{peB@y+E*aDEwtZ=cY{9bn>mJ^RC0`x8 zwOE}uOdOsExD6PSWs5`Ap0wCw95v09_~Mr?sbDCs87z_@XVRBNU3oX1ZhFk6%@pJe zVpXm(S+^#ZOuMQtSVr~X@)&05KEaklyZrIBdaazjJF3hTMdZV>qIZk#gq1nV{Vb>O zFsg0QC!DWMD8sC;jU!QNoB;0~#q`-N(#{ zt1OtIQbWxhN#77SBRXHu>4W$6Y){Pu_G_V(7eaL3f^Y7s#wgp-zV3eC&?(n>XL+26 z)~0`~2B+pQl#IIM9w_Q%N`x=8uEA(JGd@aIE#ZcIW4!5Uz5i-30|X|mey z(?We>RM>lWbTVJ^vdo~8ZV3)12&a(0x-{cA*G1l`uuc}wz5^>_iuPt(7gLR6B06}r z^@Y9`ALZuQte?~NeCYdIB#VJ;+ASwMWt2DC=aZkyT*zppBPcHh-c{t*Nur)1H@KP= zU*6>BqSO9)NblhB-k@jJe?qT}Ho-Zv+AFs(i*Af1mGb?76cm5&Fv~)o=tD(r>6UxN zBJQo^dNQTKoa3rPq5CfMc0VV@G5_t7f?=* z6mrCrS|j;%&(KKJ(S%rtsh zTWt%*3we~Nh%Wqzlj!1wgl~IgoLjeq19>V_?P}(yuF6U0LthlODjK25HapXGZ>7sQ zK76s~`?=HEQA=;<_3s{f5Vs#tc*r|-b0LKKX($<^ySi^W;B~oWOfFW6=$}ijcoHhY zeA=cZ@?;adEe=;Fu<{NzE`!R$v{7c^IAiktXS3 z)6)*nrw)0vnZC0yD>iNIN}3zBU~hPAVP3@?{^XSL@wcrw9GTWJPKKyD#~;x)?q6R^ z4Yq)a{alTaoZ>%u9QIo8aoRmB=s{g4ZuR2)ocPJ(ri@(duDI_SJUHy_PQqj^Uip|T z;}cUhjRygD{U)Mm#=^E!6NgRZ6&imS&hw8lJ;@1e7+?(K(}mfop6?qpHkU-=#DpY` z(}ZUbymcEAvR^tV1&Jgczu_qmSi8HHTbja!b<|;omwxs>c+!}z@KA!bzbt%opH!@{ z*o0D|X((adu54+9Jj{)8=5-V`)3O!T4u`FLhojG&JFW9akA;F9VIj3c?If#*Ji-#jZudIw*}em|hh3s=}Wx)U*sH}d{@kj@_VS;PrURPuxMLm@w33FjF@VRk_e@Kh!y@nE)evX$}x6QKOhbW{Hn%S4<`jqrUzB1if77;w*(pS_B|FqsIF#v zUQ`rtVf9!Z)!>&_#+H41my{F_xYt~8&y8NKdgzI z_MWQa*#py#wig^KPt>d?FsV6-`){fh6I#b{dH9W^o?7f}73y+B zRJoQLN+7qRPMRlazRb$J#-m~wYpom!6D87BtR_|oZ$FEcn>Xd#$NE9wJs{UD!N%kt z!=KCd&Y&O8oTX!DF4l~u90_KDX~ofhzF~Bh_6mdSC1JvkAlw`5zjtgF=?#k?wD2&N4^eo=6IxUJQxIp?IicUuN#-OS{Ks z3}5K@bKmM^l_RU#d%0puH%X+4Hy(9DAMeR)7R2QK$SOM$pE34h`NjoLU>)qEvWZlB z=Z^C0V}>}a_6g z$~IqG$SkmsmEfr@oZHEAzqKOBEfb??zoEiIQNCG@@C*RNEJWumLJms;cNaa&-mc;eK*Y~i$U3KZYNN$RN)UN!D+RC9xkO~CLPZ5e5?Zn;62k~J zA7w&GWqt0YpqcnVoxS@k&w|4x{Y^`}Ga%M1nsa_67~h+7JMSN1i4YV%Ha8~;+4Fu9 zJDt%km?iYcpWZhy?Y_iJcmv`s0|!6fTrZ0@aX;(NE~)Ov--KXjeom|&oZq&d>b=1j zpHXHB!XoUocf>52?v!b{b+9cLgf7BKy(($G_C`do<)AJj+YQso(r7jD&}dlf;6O;2 zdYB;`!A}e#gMZn6JIOb!$hMBDV()n?SENatfrh3&r34i+ibDk!B*=7q1!X)Eub}WT z54~LppRDn#V|q7ngrt^w5?a9QoLZ(o`K=0HoGCcMAOT11vOOf`>}l5ey4_N+!=k+e zpMTrXmvR?vRc0cLVZol4O<}3|=+_3NCHH@4JWV|o52ms!h|Ux$A4&R< zAtiHn5}nOiDOMzLwn71oI{wxJ4C&hQu+=nX8(A7RrwS}m(Sgry-n_%Zuh+?%3%DlA zOy81zs68aT?GUz{iBU)Xbc)}IgkA8UfwY?N+zI@t-iHE*ara@nv~%LXUE0-eZ%uHN zPxXZP)gvE}N4}Zr&nnXvaxx6*X8Z9iOz(1v3|0un|3rZ0-BD>}sq8%7JAT}g9uz%X z9O53y-p;-fIaPg<5|{cR)LWu|uJB+^%@887%hBs}e0p}#yyYYrD|TaUl*FlRX~5~y z@~AV#*h=KchUx81rNyoJpx|{rbqGyC5gK=xhq&skfq?A-MQ-C)-ipua6N@hIgsGaO zS>4~)WNpRjCErM8=xjWv95dNZf(v2K6s1;w6$Q5iJJ%NK3PqWQ1^PG|6GbjKQqhUr z3p1+C%&usPkH8QeVz$s?4y|co z(fZo%uYwi~VbWmMu;;q`4*Uswf4eE!sB?$n9qe5FbzNIat>N6N6v-d@9lSf-$?TV+ zLC%Z>E##RgCe7ZmbEZ_0GcVj`V&z~7DbI9k9*JXMkU+i*PNZ{U77V)XsF%UE6e54@ z4e<;l3Qvooj^R|rA2pvC61?*Emu_TT2*zx22C|{DFZjqAgiljV<|p z^}L$XJ6n?H&bowYXjI7IoVf$<7h{rb*czNtpTBCZ7kmsl-PdPl_a&xYPyC37A~)Pl zK7^mV;U`J{Q_BC5`{>LJXSh;Zp^q)N^OQrb?>j&Xl%2bTEFj8lS4P|+L6gS~A^4fzB?CL#X zTyy=FmpHOtEisdS{2(~h&W<|Z(b+L-64ci7@MPFTBzbTpaHx4OJYM};P7!Mvt%*Vy z>Q`fb`dPayl7yQ`EEm$MqGB8M|Yntq1CO!r5tuC5bupBOC0d0 zJfojMUw)^`!?YHDFG~F51p6zhQI)TFZgv-^iNHu|NdFk?Q(oB*@w{F52k898^-6{KSj zl{%MVSuZl8_MDFh4D`hprH@OA|uSLISXzn8P*S}w3AgLdIV3_8aheIg% zku!Zp`ex&{Nv=7lbBse=0g7fdKh0uqR~pu+RgM?qVk8~_i6LwJ5gyXa?mbk8{rZeX z-+yy*&sjJr;#I*b`)7hNp_2ImvCz3bkLUly{C7uq$@SJv@#>(r*C|T?%GJm z6wos*t^Led$1I?6%+^izSc0vX-F0I%ZfFBpwQUh?)T8<$clxD7>00vbFoNe=iYVpg z1Q1f!7lzMQ9~xr*Ouo6p6@tG-&mALX^p?6^oBagA6Lrj_s&sh3gH$uXJDr*Lmby&B zDC9VhA|JK6Cnu5v(_#pJs7fPT_;TmK*lROWKI~TMY}VcP5dn)H{lmJ(auOEZoDbqY z;BMOR=bsgwDn_0z%gw|r5qD)2VN4o!YFVtY3%3o`DSrK$-E}Z|dLxel51yj;Bd;i_ z_Cj&fd@SXW3SmotAdO6#kA`HdU>3HeRP@`tqte$Mt~bitiZ<@)dj(NkRuKs z%7~$`%=+4t)Pd;wd-zE1pc0B{V_ZBtUx2<&tuIPA$K6>4Ujq{5zcyx4HC zOK^lkV!CKSnUmtOsMFi7Fp{UPODQpL`N`XlF=VZl@M$+BKM1<9E8*V1i0%p+PF(wb zcA+cL$gf0FeiMDUu|Zh2THVn|&4DlLA)nkWosg9DA@j;c^^f2B_I&Vk z>Re04XWy^%=I*osvw3!2GTMQy@%!h6&*;#j_=Gp;k2NB6%GI$l^3N;I?4}DfZw>3E zD&74NF4OTzNYaW;^TRAk5o)C)GiRwM%)V8Fu-dF}ex>_DcHGY)088x2<;^#0F_9RN z&2eWpK8(~wJ-Hnn45|wIKkc1En=T5hrOUQ$+qP}nwr$(CcGnWROwv4pMEsgI!LAe>|5 zfX7(opp*pe*!!O=`64cL65M7|&5H1S%5gsa)M;PwdYvp`p90-Uj6+Qjuzt=_pOT?) zP_(iCxs6<)Ls`l=@yfDfnM@1bOho(oQ1YKs3Kd2gbZ(C_f<{1zYa_oNX~Q1I#-H`) zUW+_)Y~dO2Aw{_%_J`{Gn7Uz`Plkb%bYfn;nbse17(JtG5lc3FcxTFcl5fz?-thWYs-LaxGN^YPIv z@DUPn7T|Fmo%_B}3TUy#&c()v!W}+l({f0kZRE&KX2(APjZ93c!#>xsW2`c6A*E z$C8S&WOr?Prr__H8}z&0p(g<;j#=bTd1N=Nc|3p`0r8SHNn&zL?GF(7YuZMjh!`Nf zLQU#4MJwLZVF4*MS7(NcM^Dx_!oQc|GTCb<7xdk6|<;@cWPsWQ==rzeAbIOQ^cu z8)UFCLP>ZfKO6X2$fz0&x3U;5y;cK@CX-mJ%3FHx(tF&mw;9AX&cx@>BKSbYayKP8 zz1m=l$JL*^BsD#a!XjvKqd5X?=kiXG;AZ!``Ve$rFteaSA6_kt;kbAA6CcLctefqg z6svzRy50E;=!%UayCn$oL~*)~^rbP_JyPek(oW9ACV2w`Ymyy6IyW)<4uM<%hw}qP zUWpv1^{TF=&B$jql<_wGQ<&hQXz&S~M1J9oV565r>tCrUnh;hs@Yh=?|L(1<=&w_~ zILD(BY1I**b7tHhup}qDTGWlCJF(!KzGxMIb`jSmaUT%np=PM3TK7yR*ZmwIm^z1! zt$kYx$y1ANdlx zQ{;(F=@n8>+bmI0`>3sRiM5aF7Gs6hglWOVK|apo>D1cIiKhpfZN&v97o*OdmTeGS zj|}CcvGodbK^b|lDq_UA@4|ANf^kvfOFG-$H6v{*aP6;)N7NfoXxto;2tAtEw`C#w0)?Ls!cnCFX?Kg+U~(X zQ(rn95Nas<6}~_YYgGI+k@RA72solPCKCG z`h;Wj25=INH<)>hqT>iA zsH@XA>=M~YL{mo>UdfzP{lIPUC=e`Lkv4c(2AI>GD^A zP&ZsSq7Adw(fs;ExqMxT&a(wi^9jvGVRANFf;OOr!hc@;?a7hx+^z!p$E=}2)I z+z(v}1n@L|`83FGQ+cS1Z=J*rf`@>cOVo$dc&_FB0BengSU9QKYzufsk9ni_QP^Yz z5#M1BR21`VTQ+hj5Jlif6!XIttLvrWi}v-xE8n7!=I)fcF+8tk=3wl&z{S!i73`Mz zk$5h;FQ4HvnF$^TN-BQ1uLL5PnngzWJGIp=FermpeknYvM$s2_obZCk zxC6NZiVJ0R!&Q4GAvBm`Q3nx0SJl8|ShF(lEeI79w(|~I_enJDj>|`zecz(IE5;Lb z;4JJ;SEu^ZK1;(2-P|SB?!qF;MHpT2n%TmGW^r3%V8|V9-ertTXm*hBlS|e!Y zJR(|rLY5V)ZiN8BKt6t*tN!!aQ6O~kd7$!#kXS~Lf09Hrl6=@tjPU4c4HF#t-!DMh zoqhXnR&`bLE;gCI?d%RX=S?l|$NhP^xppWZ-bgcV@si6x3jH#~? zgvx7g(ma%W++07B!Fr9rp1`8aaI2G>5%ONAiP1SQ78n|mc|6uwy=8_x1_{GpGa`iV21D0Y+aFsC`}|4*14J^_@>5HW8QlrXHIU zmaV8uCGZrmZYd8&?D|440-jEuKP6xqyO=ycLBSa?KJV_4v_r&rPU5L6_G!Q}*;PBr z5Ml8Y+ji?}Uv!GoHclb7XSI2!*F^U{24O+GO|1oI8AHGxP@LHiH9~(p4iZ7*PvMct9_iOBWrv1F7!_HH`&)U4ViC3{^b`k*tsMXuBda$ZoWiOkZRN@SMj6I1H&n8MdiaXl_h>v3FTDtF0yzsW!#Ohz+Va{-S|+ZwpKHNCqE> z5$lJ<2$-~r@j?;;s&`R$VOtcAl?BF`r1Dz{P8SwVFmp% z+9ntMtMklNkaR3=2R>5WmyvY$XXQxMr@~@Jq9e`1q4Y2}D*jBi6|PblMS?t3jzKH7 zUX;=AMHUpD;!7(|{8bEQ24P^IZB+~{9^N8^=(iMOhfziuO} z4P8}Vr2{BZQzCn|B+!n%N&`rs)rpW+m|lOAx$p*A%!XP!16}-FlxkNjS}Nqv;e>C; z4p0|{kmUG%cOZN-#YJb!sX)1C``t%Ma0HF?n31D+!JGu(jEyiF=kF%4P+7}n(=9pN_{ zno^U%NE}CG>l3reOuZ1KR-cl19}}o%2rj(plL5NT4T{!hokuxk9bXOi+DgPCZBiB+ z1>f5i8=sT7U!B`^Ryy(T;TZqxxV*jfFU#cmw9x3TwgpIqYfPZi)`Kwaf~x^b0=Tj8 z`m}wnnk%ZeT}m7fTGWE!YDV(VduVh&;i{Ppms}#ZG_x3;XRQOUQzv@TpWHzt{3zAl z8anc;j3J(gLF>Tj&kHdvF0R&mN^f+j68o@bV9R=Xbzgwsorc&BQ+Ujxxq!Q2YcxBk z1FnQK6-EH}`1=RFO_n0ejQ~E_+z0oy#r;Zn$SM84MiePJz5jY8pCMauKkuSf~RrmT-f0+Nk(_H zk*>P6a5>kdHp~6|nH+-Xmvse|mQK1o+MZq~S7R-p@$j0-h$o##P*y75Pmt2nPMr`> z0Rb3zjQtsJUtz&e^f`1uG@$KQN)~~^>-sR%f&bzPBN#u}Ds4e`8tVE*%5OVSpk`sb z(10iRYkA^hAX=!0G!bUqxL*Wv2()N-B~EjyP&WisxsX(0V2e-|u?-_zXmJ==oJ7Rw z(em;l|co zKq_eJi}k7e@isK1=LnDhu&Ym+0LgH7tUIdTWvPyh?HAYg1$VUHpBQxnbFcW;6w=d9 zfMKJnym)qDV1q>xVZX8YiU!Hs0=r0NF<54s`e%X`>z z5PJ91K%$E<3>}ma*$8}w-7k5KV%gU_jL!?6r|dfiuAet)#DAGDBDm)4V4wozc^F7# zGYsZUymWhHF?_Fh>YX5mQzq&8GQBZtm9T$()BpV1$=XMWl>NIhf-3fgC2LKJrANil zb69~$O$;4!fmMcn3A4NRXY?+XOBP=pWA@3o@RSc>W|=Ov}*QY9g^_TI@p= zRt0Ky4(Yn_#>gC-#?S6VWk;?C-Cn1s&QVUSc8M?Ri7YC3gja7&c9F%UHlT_+$RsIj z!l9Vc%h96vKjl7km5Ri}d;ri#8HOvcnHJ=t8UBXgL|bCNu%z%wXrUm@0$j1i$uY*d|EJfKYV@P_ zCC`3ON=l2+MT!l%wos~yx3oB9KQ**;?DAXEr8}-{Azu=%kL=Dqrz7pF04=;08NdW6s}B@T8{&e|VTpY21C{+O$}(2{eN$G-+iRTc z+jEpP{l;n>j63pcx*ay* zS1vUMr9Ap#6|x$L&pB9P73V$38Xp7fa6Z_c7QRiMt%m~J6*r@GTfLUtdj>*BUO-#= z(5h%Om*ck7$l=oF1B2#2hyilGR8MWXyzU7^Z!Jeh2@=J&B>UvNQf~zvOiFf_{K^HT zak8rH(4wHE-GqC!YnB<6J;zZoezSug8HHg5`!cidSyvo8~H zCpME}=g2V1bzU?NL}tE>D)s9%K3@;p&bEOne8f@8<((n_$>x2z)tfT{o$_CW?Y~0j zzNNeAF<7X>;7K(h){(Zh{==SAF2%dsyRfvm_XJ;rn+@P^6l0G)|Qrwilwd9sK9<%krR@YeMxOY1X#Ye=7?W6 z@USHPUNw@bn|R5UnW5jGAOFFTPS1jO7TCA))vFjYIK+;8r{L*l^+`=zi=RvJ+4JW! z8TNAykY0cbMkic9@3*AOF5vN*<)?a_E~Q|^Q;QXJ4hz}yNZsqrgRf89ITJE{$;G>) z*{{+LuKb;_O-b+*C}|-=Lh?HJ8g zQs|P#7woVTn29(T(1aznvoFV|-$re$iX-CUMT*7DQ7@68YP?kCW;79!p3_w4Z=dU9 zd{JAiKjMSYB^e8}$?oY^Dr)ySbADf2ys<*aqca#>7fZLG;x!&v0jUa%Hgnkxp_q8u5l*I&J8p)r$3eLww5vYY6>J#1PA8pG ziG>B8rJqJ8;^4wDdhpwZgS`%m_3*o^@ELv5T}X`%mRB}l&Wm^%m#Sh&ki}P*Jha56 zg;0PrJtG3}&fodj{(7|TEs`o}^VgC*)C!vXZZFmSr zi{m+^b%ZVj#L_6vud~&xjn-iZx=IFF{AmZ6A^e9ihoZM_*iW%-T&`bkjj7nN6i7Le zQDvfNdB>6~;;wRlPwu8CCTF+YQO83qE06>qv6Q}Yd3fvFZ#u)DtZ)I$Kc)bj4kWTM}iZ!TO_7L-oS7LwKy)i-9 zC;5rZ0aA&DTRaiP7&Pr?%rnN-B;?~L!-YI?Hsi3npU8L3bTre3Qj4`pKVczokYG)e z!Hp`8e%SofEU4iN7bj~>BSKvArL1%o15IKgDW`2FJ7y=@B%!soHz(5V#`s{mJ@Vn0a6=7ea zWaL8G2$yMdy)9PH@IW$Syt#sm?Fl3LE}WMtuBTJwXn#^_yfP|8_gOUc_B!H(fFte(w=<2a8!UW%tl75`fgx%{a79Jw_L(ZSC0Y4mX62~Bt(`H>%*%q6F7!X&F$D!9LEmIac zkao#{`!)#;y&D+kBOIQqmnUC}0d3^DCLa8f1c-Y*toE_vYDI2UteI?HVOP_$@)_ar zQFXOj3Hw#{PP6vr;GtVI2K=JV?~KJ*n2t|s0LT!c$WSt3v zWgeB*_Be;D$^`sHn6lmGs{fPif#V5~7dSxAZ;5OhVL2Ce zD5R&t9Zh>|B?HZ(P-kPIP9ET`=CtcNS2KFoBRK_c*;%8@C0Y{zV9$aF3 z_!j!Ha?eO(%D(XjoBBi&$1z7gbA9_{2~$MQ`@(qQQiXBnA5+2PIv4V6TV=c%@Z#5_ z<#^0LXQkOXh5G}!6FHiEz<_`HFetFFVSXq9?q)4VY2f;*&Aj1Tf#{kK38f4|KSykH zxOJ9tm76!-I(ygmYL?t%#-amdH5eP$c1_+l|u^T@`r;~`Dx&4U>yhB()~;(26=|)IX|{%zNVQ8 z6t+Z6>UKDA(S*C>6w_axzd^D_5c^5RLomebH$RA?XD1nV76s)B8?Lc9s1^8-Xlr|m zB^o+mGVxy7q2*Yg51%wap_}8ux?CO2`rQe0kSjzR8sRG|POjD0YO*2+=V$ZOFmb|Q zg*vY$Fd7uQXPnh;LMV;`b{>t^WQX;v?>DG2i$47_Ah^uk;EXVLEf$6G_BW^DEKmG; zg0}LS^bfkivoCd13+=VOU@yzZDfFIrItbCApAJ*0^D!Q8B%?UvjCvZ>^dYM1&R`BP z0b(NyI$iwBEGNQXVDlLbA#7GwVl4~vEOHa3u}sc@+L`GP2R?TU6PjepsfcQz0dPhZ zg0Ib)WdbZFF_Q7Qxq?ipQE8i{+ma*_OUI@Y`#)O=19--rxJ^uaMJNDLw@Y|t&sm$H zXhoeawV0M;BtFe5tuP3kg8HgX8TchPiIzU_{ayYPqN3D!=NCedO}y1MzDDT*kx(tqFCpZs>g`%n z;UfkY#XZgzhi;zdfo>BAIm?98$Dj6q7JL;eSK>I&Q<%qZ&Yf~czo($7SHKvfNcR)6 z*WSUL7HroDix;p9DpO!J#mu;Yh?R5x_`(lQwnJ-G2TttcCo2i;XcBK2y*8429KM%>RjVgz>tw>+fI?M&Z|S*dHTK5&$uZl&ALgQF7$Rn8X`6)aMS=qB_)mNDS0?A87ld!%KE<_6xcd#RhNOGg8_$eMB)B;&2 z6HOj29RGHAv&+sm6*cnD>_{7U5_*^5hH36EF!*}c>iI9hhKmTt6Hsu1>5%}sp+FR2 zNtbru7CoQA{9~~B3m(HLoj?G%5EWK)rC~jLS7nA-Z?B<8TM-a0- zJ0~ytfggKoLBqg_Wx$g>8EjfrAbkAEeIg;$>GQ>>jK<{%7 zGr%w${P@59qP!5x7mV0Xk}dUgM9)wPsIY(lQD(J5^h+Ms_?*#(3^>(M-R^v{ao}Eo z!_`kT(aQQ#uX4G$1wtSDDFc}z{g!X)`q_n}?SpboIr$_+3F=g)C~N zOxl1QCvNixpDCfSO9aWC#UX~6M-0;|3I+>x7%~^J%b$qkFvFl!QPB1M>2|&D= zPC&51r0`$vPqI-Ka7T$V@~uQ=Xz)LI9a)1`O1qMWIEMG*We9NT zu#@YDd-K?#oqo4%C}e+MAqjIn3OCo;eO>f|+UfwBS+WpWGBltQUTL)e^O&pS)Qec4M&ad|9*LJ>xFB z&yQsxWR%L*kxXZ_U($8SoTJW!Pn=&ywVdSqE5@ae8q^495*`-}HJ?mLpUMbHwyiu> z;|+Kz_4wOIZR6{fzaG6+Vw{MlH0N??Y_8;DhEr=ZSFZfD2u7If3(e(~B`PL(^Li%$ z!$6s0nQ1>xkuEhTvXIV79Y^K)*SCi<1*6$i4yngD7uGT>5r;+dIFV}@k6*+%B{E1x zS%32u)kttrTEeI`qg&bE2s4h%XfX&sGBC|RJl_ci=<$iK-m8=Y+wFmDMs7{2Ow+M; zX0j?%0{WG)K~;rL?L0HTV?hfs$mm7%Risz=CT2a~MM5a{Zud3#;fc^AD8JJibC|Oz zzckxoa09hk*5Qh79$9^lK%o38Px2|E^OEEN(PvU-jQn_|;(aae3OcLWlPlG*p(BJa zm3a{tiCq$Mw5W4;lCa_*$O!bwvhi;H4;h>@xOD?JTlab!2C;F2sOTgCc~_jQaG5Ei zgPW#K6Q*!&gmmJMsH-5D_Nc2z-chysUe`c8Q%up$TdP^!M&`;Gp$=L-X8RTuox~kW z8|e&&Rm-)qO{QtLFm5_^SKT!}c-~$D%t_B6%#LCaI#-A#P=51^uIVAJZNvOY*fRn! zdtmY?ifr6t_|_BzZO@w!@sqUT#D?vw^6K-YiDFfYuQK=T3P3TpIL|VdySpBrGuUnN zQOViwCVxvf^89`=FL&y~cSYy8g9obR8}Xw1`gM zvZ>N_tnYbDAC6ltTm%oNi_D=Hg3DJSHbYZR%I1e59wRA!jFxu~Prhd&XF7iF35Z~( zEJ1X+-c{iH0{85NJRIGfs|?l3vzk@@ZC*#a_4meZ(~Y?A-?!K<#-25qqK!g{8vj7k zEuqJd0H5b3Vm%|FarWnAN*73uaNGP|=Ynxk?ixqMIj%}{?FkUC>bJ)u*!ZR_`YDdn ztdkvrI*N+W1*}ND7u4J5fDe0nH4ru+c<6_dwxbU?CioX3j$|i8k{@g;DY~2l@}|J& zY)_xxCK|1*h#(1cNQp&?GLyU{UCnz>?aiU*i5k@=dI(T%{d37|DdW7Veu^Xjwg%R`^YG95NI-=;%}gk&u| zPt&^s(ZgX+p=oW~95Iu~-k?ObPDt_HSW90QwP_QMqCAAk5Y zH9eq2Ompg&xK%G*{0&-NPcW(YjD>LX$mt?hN@wa0K?NsAZG8dcyKrP)x3BD0xw*ZL zJ|~6yGi0U1aX&GU7!k}jlCD)N>Qv*Pb%FV<0}0Dn&SIVzwnH9CPD~Y(8<>_e2CY3! z$<20Vu3-rWVZ3LvIKs+4mzLA!oh~w$G|cxZDf`3@9lj%|Gd*yMI(~;<}XDo#I~RJa|$;r z{p2M`LLVIr{$+z~F9ep4(7^*mC`2hqhm9VxJ&qE*o{V-?a)bU+7E6mItGb`8x2GaCKT8p2=N+w%gh<**Z$Y~! z^1hp%>@p~PLM&*w_^|ExY?>)$Q$9@M@CT)$pggu;vu(KuDqfC3`7IdXVuFq%{` ziUI28Z7BDX=c_C?x+TEFNzeQs=@e(MSG?x`D zC)~VIgKi36Vy5kacFdW@jKB1q8y>o1d7Y|xF6`bKla=3nJN+_CaE@}Ff7Y-8w@)v# zBCal!T4oX^@@3LaEV!;A1l<-G4uOZq`Vt;qag%4nMEvK}p+J{2spf*` z)t`cnWY3aYpiPMBdUYrratGO$;VKq_uI@$Q-|HKk zAcr2i4PrSb+jVW;@9iyz^)#`7o?ZfaQ&bCMX;=Z>SQ|@J79c8~dd>5&IkO+W0+DUi zs@14IsgiT@U_;WocV@^S4~vbza#tO<#BVt@Wx4!12h8#7O#+57)-m2M4l7}Rr+ezV zZ`_3lg7@Crg*fOQgD)$u~ehP-y3C&S51;Ti8I#@L2a?GWV?NdM}f@H@P~9G zvwc2=Z?BqPJGgv}>45HX{g2MRVz{KAyGWh>JjEEejvOyC>LbFU@w9RdMDs29UXU>{ zd%FwS#-e)tblX`W&XvtA*=apuc%c8J3p)PBkbU@us`uoZ`}NJ;`qfnP=)pG=NB{M! zZL5CRJF51-LAaU!4z2wkAlxjhjQ;@PW?=XS2=_`aNU1^Z?pU<`~N?DoB16E{SHii?*tz6 zJMWm8=^c*z@%o)%%*4q4N7+aDUu6vM$A292k$>=q|JeUg@86`qSj8W8|4K~naO{um z4=(Zt3;BN3C6(wRQE$?qB%8Qx*r z@A+THFtfe`r{Bx}{`zm*AIE&0_oMv7o*!D7-p9|M`Fp$X1B&6@P9OP4-G2mN|Nq)% zWqG$5!@Djf);~1SfB4~VW8t0mjQ5X;o{otDkDcuug#F&pzjCI(4Vn*Q{bi7k2ADn! z$?|7M|JwhN|3TIMXyDI{cQ>#x{Ar>OH+{7F;kJ+TvH!2_j~4%B`Z)fh{N3#ziR~l3 z*Znx#$1wdU`#9mBC;ew#c$fO&}`>4_}@-zxcN_Wx1x(PM>wsf7K1t3<%o%IMz;c^{|$ zLGf{W`9NBm*Xf90A#jUw)(Z)I-y@5TJ-iw~dvgM;43-v3~i_h|LM z6!T%1|5VVQF8S|*J}y`P(ou{bBj`W0j+n8Pi?Nfrq5i)$&3jP#XMXw^6#rVuhvELW zN~r&%Ve=kP{)wFTtJD7^=fk`Ip`5=a4FBd0&G4ru{+oXo{&=7B@Vrlt-cJX?_}?Z) zYO)3v#)eLRAF<-r`liP3F~rK&LD5d%(D;3Bs!=u6drXA9voh0+u?KoLL8v z6u*2%5P%S;`91qg+;Z~?|FZyihv=qmC>Z|fs3lx1NuayNnzK`+<5!-q}g$! zY5SL1kuj6=tVhJ-S^4^?n4{m~2hsBN)EdtibB_r#^}D>ZHw!#+ns146@FT_hPWbaM{B}Vek zMCXH~M$ti371rBi7S|}Bh6xEu3^S5Lj(8DsuS!uq#!f#rsrXjE$|kUYNh9sTb*gC zueWMxucm0SR1?$Y=F_n<87j-gcUIWv6di=sHc~$hRLb5jR7ykB#$5R-RcT{la>b%A zrlw>l&Sq&f6ERg{zdVuDe>SaB>rjo{U=)EJ#0J7RXjP`YnFcFo32bo%f*0*iL$t^7 zIb=MM+;3K)zNoy9KD2|ec8Rb8f!sbqhCeFotU*p+g)ZxraTYIbtN`RS5?9HoDm77& zms70T=m<2I<>XQ3=Wr`2w=MHhvWsV>C&u9*E9~=hvCJ|ucQ?5CNw>CndN|z(P6UOe z-S(88zKT=Xln8R?-JZ!;K2R5L6+P-SFk(xfx*NgUFJaIG>?!ivEI--1_42PJJ_@7A z>@DIj>&#$J;!pUM5w}Rkus@XBa?!H1<($w&8}#~r!8w_F08L2 zq!!$V8C$Y0T`UgdQb+SkU$0qS9N$lj-`ya>!Xwy+_Ze675!ft;LP}UwU(ZBk#hqfT zoM+c^b^gkgyM6lAYmEbM{C$Qw?om^4_8G+u*;skKYSdP8ah}*HIfNL+1Gv~T*gP+9 zE@7bo9-UghRQjm4b8URQBC$Vbdf7|*GJG&S$8KV@^KP^v5DfQz`PXve>THEv)yYHX zQGH@m)Br#~D#AYl`%8wEd=Iq&W%DKDfV9NX5PHF`h7f{%pGangZL6r%z0@rFtGN?#E-L);BqD!kbIK>LNN?M)_7Q8F<7K0iIJgZfI%fr3~JL_0RGv%+Qr_htBjC-XcEE5;h&aLN3zo=1vMW1{&rz zA{KIiMR?rgi!&Tk6DH;bnmU2LlFBt4-G%tfR+8l|IV}a1TulO5Yq?>TG7uPKp|R&cUHmrwWQ!i+jS>N=WN703(3tix0Plj2TSS63vJdXoLt~^UiIHm zhb*`Ht&!EoiT!&ND?sz~#bQ0b4JGK%TaiVC$Q*IjIXQYI;${9)omn|cQ^4@*>N>p5 z^BEK(fhD;_1(le^GCt!<0pog(f?oBwRY%KQK6VPJN|^VzXfYi9+9H5(pWYq+;=jO zEK{!RQNmClGf>@@)Yweko!sOwS?4mPnq&i^&``XmWaeDB@>qz@KH#D4A}g+9=%Hk( zvKGWagA6^^O5m&_#AoB7@g2ZIoL|C9%*Na=ngzF_lH*aUt(lSySSr0X@Rv}I6V}HG z;|GVIDI_0R_|+ekmfWzM5c)hr@&ISwCzz>gCn6^VknFF$L}^h(MH+VwQZzo-Y8tFz zRLCM+Y!;!umQrJ!l0MF=UuAEmqU)?}ENgEq(<-LaE~cdwi_)A^Sd~v*O-F{@k?Ubb zGFh~69F=qqB352m4NhEZwaOj<_v<_wKM9WBGj?Y`TCVmV|B0b(BO@i}F8_Mup{?L1 zCuE1fVQ*Muf`J*C&oQZ2S@5R|9|KV)9cgh{DLnz2$4)=uL2x*hWlh*EipN!_oQ9j6 zltN6Y>+Z<150Y^cS>TdOD6O>sGiDL-1g+r;*M|O<%G;G`^k&Mn(xZ75={sw)v++RM z(kAkX3O1HTDw@v9+M1rGRsyShvXa{B{MzC=GA6;Dr6f#bY}7oR#TuN>-%ZvkGM`P* zurcs<5`)I{%!Ssf;SX@r4R_PoHy9jyPwLTOIEuUPR%o0VPp*q;hBc5HN9jw(C|f62 zE6wz`;Qy_NABCaJR#;%;44}&IB zso*l^&@r=7QsQxulaSE2eyA%?%f*+=ACL%%uo#K3mK){^7?4hkbl8gA5lQ9?ei6## z7fFnIzb=KaWp~$C|KjSZ_P?yFEuwDT(l}Hw*jwXTs+=2bvASxXKXiFq{4QCMIYv4u zE~$#Dy3n*xAms9sw83ZyMd&LtNyw36A8jMWOxWDMQleReMA`gma6$Xx$?QhiYSHXy zQRwu;MsH$S{VytI16f;H2_HuplkM4;hu-Dp_M6&IUA;Ao^Njmp&`B@TpWutBv_K^Z zKV)%@7G43}fvbmY{D*RAj zfK<7=FA?-+5bU@m*FQ3#E%;4DB;rWQ(Tu=Z31rlZetwuJs`=q&wR(JS&N|%6JEI*z6{NV*Ax85Ur*59v zG{GIEd zW_+ps5ym_#ijTM%G-!eCb#1jCK{6#>?J}l`B*!wxGr?(J+Tb~$b&p|rKMTSWl^g+4 z$(`XXfT_u7cv}YNE%1$pTrNA3g9a%XF}d0Q29hN~0U(ZEY13D)ct5NXQ-Y$rk{nvU zdQ;o*YLCo+**ct9ThV%2lfFTxY^~y=qvGRk=Oypvp;-iAWsBDa^4|<)Gfs=AeUF+f zI|d4teG6X{DrGHb0!I0M*3I4M{3k7596Nt z`MleCpWg`V9Eohx6w~i9gh;058!p+(NuBr)d8cHbBj0bB1_K$ zOCBQ0?!rhS#w?a)U*`v+@WYICE+ri#H5|%S-9U6O2=R7)qRX=+eMl0>yFz(1k*PCT zPpyfT^V%lST>xdH^XzZ*9BgCOdR2QJ za+>P}6tz;~H~m4{rVE@R=G#PAI6;aA8t_ zf~uO5LMe@f)c8V3VV(4-Fg`To7Ygnjl~$p8{1Z$~^o+S}boCat`nAa>lVI=YEZf2? z-(p*ZDo3^AhT@IIE>nQ!j{o7et4>7=k4Gug)Aw)fvd{SqP7Xza*{ zAuqr1cmp>Vdmj>h^3xJ@?R>hg`g>L>SF!cPHIJ4Zh;4>fs-ne9KUJt|E&+A7m3N`q z9Gm599-|^HUOh$>5OCC{ z!~()JSw`*goa>cmHUDlh%jJUbYf(%`bcKY3mg07)uxF-{zBEN3te!ovTX%jcwJiRyc>0 zO?TJn=5oh-ORa*v566R;>rhl=GcyU}dHZLD@x}UszL0L)=QmdUrNNIlWcNniF)MU@l$5(2GXN4zm0_Lygx( zp|VS{B}H+xYjB}xNcj)~azPkfoER-QLgBu@-Ss*sVhuyG?h zu*=G$%D~UfbF9T?x{{g2CjGk|1*bKViHSibJ0)wx1CuESGc?nT z5Zs+Jd7ke(&wI~ziQ_kJy8W1)vJA3SMqkPuulehKp`@IE2^q)OhtzR36PxEFP!UNs`{GAMZ-w#64 z%vf+5e!IK-qi0w0wx=|tG$k9rv-L$0uQ^^gJ=sjOo;&EVQw5O`e^=w+n6}!qDZYQC z_3{WSnL}jI^=7!T)~g<^>f97-XQM7;V=k4b_nIw;FX^2N817~E4b)ftxaYfYU#`n~ zR+ITLk!LpFqCFdfC!Btq2?}5me4jS=w)saTm2KH@20nm6mDACYpoLC34Uyu5$7#31 zaA__#E`3B~8du12Pwse~C&%m@C^Ve=a-U~=du(rf>~^#9{Qa>N5Dvcne2F|TOHtX< z&p-W_ZF7c*SN!mdHEDGhIrS% z1nE1gCTlnicjGS;84FOj|! zM7{PJCEbjdqH^LD=G6A9q3kihZgJkU3Uc8~Dx`s3JG&hu7|VV2V;YDN;Li0Q8j`q- z4kn%&2ods(4MPQ9@{uu%KUsY+`m+7isXg-k$(6snNG8k8n=Cacg#s`C*rb_Vr<$eW zq}p~9CsP*(uQWy%A5XwpL5V|o)R`US#{R-UeV@B@#oRhM+v??K`E^fQAwP2~E%&#( za6_G!in6hiw4>Ogix);64Ub(YpU*_Q_Ko)ZVI`jO`_2k%tD%zZL37tpG%12%H-f-x z^LP0N9`CPqswX&-nSYx;Pt1`iSCIH-49wZXRb!gq$hbZ>mB%6@U8(-GM7p)`UX zgoL@>-%|Slvoqfp(c`pJJ>sk^(C9AT^wvl>=^hu6@#V!cJOtjKmpr#qG$mnYINi{x z4R55BdTM#Z`mIe&ROh3U$L&wWz0@Awc#7(GPhz)Oyo&n6_#f?`VVdCK>4cx=Z{j(`#J+N&~%?H+davT{_MZ2nQCgA3%W-d$op1AANr~<5ZwMzfwr{Q}rdlcP#MqbRVvG(-r)3)F=ap{FR;nDD6Z$v=P~pX=apTK9dDGLS%k@*T z%7h=-K%7wd^Iho!SfJWZ53$IsHGYA%*Ry&po5>u3u-0^v?!HUYhZWDBU)GC9?e)(4 zUtY-BE0yYC*#i#>kJ1%Q6&6r%RScM?}_TXi5w}UV+l)>c`o@L z3lGtuBj3d3XS7Bz1%azmvo*$Z-2H>M^}fg6na$YF3&Bq6OZxp)z+Q)18b?e0tHdwM z_P{>+uGOK=cyBIDk4>i!ChTT8XjT{j-<|d+xi|fPAZ*x~2VOm!?15Uw1UR@$G3ptD zo|bB&1#80luQxp@PzQTn!YChsHKf2Irq{NGgG^`cC<30IyRb;a3y`_oM{PORkGhWD z?mNvjUk>{_Q5;V$Vuc;;taOaE61y2_c)tlv)la(ygpEhHlbp_}5^C)`%-1cIShXh) zIo9(-IAWWT@XB8=gd4tO&Y~FZG**0VWV!sfh)BC2XVbDjXLci5ZSN+5M(^12k~+N^1|-`yzg(?A^5O6aSIn{{7`7(`fj3kK?6!Z^wCNe`K>qY$x?!K%5B zCTTx_Lf{8+!H2sEWr_Bqfx?JB8V@>- z?(xw{FWJ$_uzk8`hQUXyp;xtq#t&2u@q!@N)%tZbleV>^Y(y=lLBVA=CUKK zZf%o_N>gDW&Z*DtRYyg{uJZL6yvXy{~ ze2saD*~4fi3=pi_eM!v?xI~3RpmPFDe4Mjwd2FWS@$o1lUB6h!kRm&X{KrHyQ_H++`96Vw7+vMpam*blh0HbV+wB=+l@e>`0%qw?U^pqOOYj65)ts!Xr zIWF8gaHQA^v?h^laO0T*ngw#$C$RVIQgf8xwoHE&dV+5>r=Pvox?z~AJG$p1Y2^m@ zqON4!4X6|MQ&Bk(^2>z+zpeZ6%+3ywijR>`ypjoncm;SAxV7=rNHbg{&y!uVm1z=* ziKF-`Q$6t@z@=-fZ+EO%+~oMxu~CZpxgBy`YunQtN|I85WCgo)XN zhjbmYC3gp%Jq}pnnX7lO(%0+#7dHlwTtNBCURQU;)wUx&37~lZ&rXWy^~3%_bsW_Y zcmC;ALZYoJq(yX98o)LU?shRyxlx`hrC)B6N(?*m@Yfl$*^vRie_8DD^?bF96~yzs z8uQ*xc@SNV{&^@!sJ5}>DGV-uj)3+zB@;u{Lc<{929#M%WSc*{cqLR-tBw`s9EJPr z4+QMpe~UV|A2yDbH;Y1VJdKGu|30+4dH8)OsC8C8ZD-SHZGyBz|CS0lvo3bvWEL=% zAD52%Nchc5Xb9VT5JV;tK5FCVr_cWMyv!+wd*_r*rH_UKlI!<^A)z0FH}MV=at&ug z3FMqGqczsVP$PYx91E@U235I{xA?a%+p+Cpt$uwKGmB*57yDWkg9YvPB=}PsQ`!V% z?>`FVADO-?JwH0iO7zg(I=9$6w>JIUSQd7)w9_#y@NjhbsP@5H{ymjZ=MS+0Vn1Bp zEp4IA#*LN64e`9mPa1tj0)EmAfis=d%{$g{=B;46=3OmE=F{{n{=No>wXyz4-Q8PN z#Y<$I%y(!wh>1J*mz%x>HN%O{F0g>O?k8jT=-?qYcpko-6!6_Lxix9? zml?x~;h!ydD@vTJc#&&99wQ)=q1+;OH`TRm{mOAo(Wo-ZQ3lppou0l$Fk%-97 zce7Dp`I}GMyz<1_*Sz+PDJ`l#Rlw%&F?*}AhY^Qd3`7g*WS|!>cifSg=eydS)`9cD zd1JJd`r%uX(32k#kF&Y@jAu6Xqf*egh_^N$mfoYpP7^Mvn5Aqx znVZ~LZ=)QYD%hix*Z7Kq%>Xqj`>KLQU8#<+7qQF_aKO_-_6zN_c3hh zxC>(l#Uk(Oj2-F^^K??@;&fXbztg#B08i9OPSU5zq;K`J^{Ngzfn|#Bq&b(9o)oMH zfe6ssZ;T##L(fz}XyrPQ?As+a5+Dsy0Qa-t9DviI-@>&~e#fQ*vmha|P=yKu^C@3z ze>T@f#I&F7aPv{)naWzBTFDJLHNXW=9(|=kh74#9uP;CSxatXB%X+tIBm~HHwl?|R zs(^*sua-_@+5igXp0hHtiGhV{HJ5J0ZCZMsWheVQCQWxD%XjH_Sd6n#Wp47r(z7;N z(5>$bc+TgffUz#1Pj=p77OasJ@NBvsBg)KH4!@0~jaT;o`Gc~@8=WvXWR4=HJvcgE4NBBAgAQZzl>oCrHvzFKEv8YQTGf9T2k1q}Hcja_1~d>z z@E%LOzp19eMHE3^Nwn49kVy6(%WN{Ib{Pa6T(e@-cKaX$Q%x)^`5jvEXg*?9Xgh?r zY<8!a&og_p6!hB$XuI6Gy5d@GMWV*``k>w^*|jNOy;ZmH^#`PTt~HRdo~*PnX(X@L zf5^*gaCNuQs!udNJoe;W^Rt=Qd`WO07!T{|VSB!PWn^-iUK!(PXwcXBmIvoRoTJ4>!QSyLf2Ub2etEB7{O1xU8t}dKFwGdEaysI%{=<}!j3~3<+hDn!eZw?@ zMuU#sLK6Z^=#W$QI#?82#R984A9#|uV5lp&HtzG>XXHiY4o>Hr*WDTR_ob)q+#(b< zBGH^hF7n2bWWee6MjHcC!A4~HH%858!1t5=QXr&`$ID!vNr_48EySa(g)oWM^1NVX z3)~JDXSrIez}Kfz#$*PJ=hngPY@VYg{tZIb*?amcwzG1~$i?Ea(NpJ2MrM24Q&TyrduJEFCsli}-JU;;Y2 ztT-&f)V;QO5J`_TT7|}k@O6akd#2Gg*p{A$WmZY52wr}eSdB)o9;R5wBdxyg_HV6` zN%ElQcuT~c6~##tV!<8i^T3TgFMVZsTcK?(5UI)uH1o2HMRR0uV! z-;rRs z7HjQ7-mvuo1V79Z$d>M!>wk>+C-Op`y!{wm}l zw;`6OrO`pv>#<2+8k1?@w;1{X%X9O}h(Vyqb|Gl&7gXE`5*i^*tZ%3MR$wDFh8Pp? zaVt7I9VsO%GTQ9s40B)R)%<#3<%T z(UNglQHE9DU1PBR6qgMy$4}Rnq8Zyi!s5s#ztyG-_aL;!q*stTYj8X1PA?tYd%jbUO8j(m zbp&Z!vDqa=0)=Kr->S-WnYOv;M6LRJb#PjI9y>%)hhSQ~1&EZ}KYI;E8s1H9d@sEz zG)Qyro0mC%KcjLe7!)#6+K;|5DzIh-MZ_c%Az6#wC4@F(&VHCB6fVXPhG@~v?B(WZ z!*Hi>K$PY~`F(5=@N0P7l`Yd+>jOoeDc%M!Aj|VYuH}39T|eJM-?e!C^~j19Q+x1M zQVpr2p@*uuu|wX*2Dk4_SGnp<#Tb9s6>_+18RWT*ZvcyU)t2{%TVQ^aK7(YJpgoM9mOPK|f zp+I^>d-lAQ-+MAiP{)JR`fBvlC2>bi!(gMgeL27tJ^Iu~@ObyV67xG2Vrl>tN177l z8h+UQ+!jN3SQA{xVjb|z`%W8#G~kCY3u`TvwS_E@+^{Vi%D~QCGxdYYerBy;6YFx=?wO1bq&h-@ggYHOYY&WwBqZG_VoF& zkPv=D}%(mThO1mTE}zAPG3&336IYM7vSUYy!2KamSI~)hCQ;Du9g8m@ArSy z3WCkHWe(HkJ4`oRQA|wg{Q7l~t2j^2w)Tf9UciF%G-;~ooTc|z1Vkfvc$`g5W2Udd zaKHA(Em;I36<;-xT{xIHY(BXzv*&#GB|4ev9DyeaI=ebZ9WU*G;!`7ic=wX;ow)a= zcl%?-yMz$u-GZrSn(@d=ueIp{DQ6 zF$dSqUQh1nbI)Lt0=#XV3x+hA-rWV&ylWL7&VY-{?ZZ|tk<-k0MO^H%M61p2Yb-$8 zf$Ws5kDYt}2}s5c+z)&aYdmiDA8Aj5tOb#eNF`qa z91m^Xe0?b(q8N(zJu#n|O|M|~=zU*p&CRnMS&)aI_{*{BTitnD2Rdm%K^mX^k~Nj> zpy+G?bqeJeeQ$krH9@{~$Mnos^a0z*X;+nv;9KtYfUqz$xi0epP?hVL!tt@yYWnvv z9xrGC((kxH22oxmOS?qz^*35F$^^hGVRE!l}{H1|J* zd?1SAl_RZSpoBHyl)wPx_xC&5-j_7&PErS zk0)G58Dp&{n6py5(7f$#c~ZXxi}f+Y#aBd2YXE_>BzzZ-GZ38y{yUUht5-Zcp+*!{ z?;zyS;|Bn#7Zm6~d498M@C7@r_)EO`4?F}*Z!_;3hZG~$JuHgJ8dn%)`j5f};IpiO zOl;$}a|kdv3xzGal8aVgxM_N&aCCx#J;AEcIAgC}$CCI!Di`7O?RhD_kjjxCGr{A} zCE-$7_8P4>I0=@~dHF*mG)@NtM}DNyVfmUnkpmH{mbHFg*h%EZ#h<<&X9o)k0{y07)fEpfIai2ZRU_p%x5jIH~TXQ?7|8kT1IEvz-x?{VLa70-;{N%{VQ zp0hbMujG;8{T-)ieWv3q^GV4z4dAT)M-)An00N%oq_WcSDr>mfi zhVK=R)KLn;`MSku;W*yfTE~)`N0gpCIK*M}ojS4t<*j+@C~{sr(XQy#lq`744X(88 z4Obwk$<%j#Z*F@_Nh(HMy1atWT6zHhJ|c#kky+Zx2Ayk)bYYBPOqk^}S_d=Bz7py% zilDT`7E}tB;pvRfglr0`Yu6Kp;U(e`9I(+*)=64Ox_Bh%X(&P(zxh~#LgMBJ!;a{BV@h% zO-cY^vK;IuNMsEr3@_F27Hj(rDl{b@&g1uz6v1_r)ix=cj)(hU^7KGU977^57T#8w zrugL?z$?!cgds7~?76Ij{+q#NBl%3$+hO>;8#A`k(_9MrYj}IQVkM4#e#PfRS^={d zYjVc7h%qFT1A$c^Kl4*TNs8)W_N(EXM}S=TVT@GuMUIb`y9qO58538hxZrXKq2)X9 zmd(m!(4N>d=ri)xreIrCC@kWE5@%9xmnwedc+b6ib0d3c%uKIe&M?VV@4}jXpzhFC zW)*866B1}_cKGRb3A%-nER|?yPSom!%AiEumCrjGd$@^t_u%buxLw7CH=Y`w!dg5d z6u_wR(^MhnZS{3FO&O_%M$PlxQr!?D{6`n+Omxoz0eOm1z5WaeFHrlDa-A!ibp7jluh&oA`6MPn9IN zMD|uj+ldJ8jlQ0RJq0muW&=@8j$rQaO&_;iJcb=DJxJ_s5HNNcuA`OlQEBX2Hp?!W zagbOqHc3z&iUn-ZGqcQotV+%lC936^)u^5dA7)xMQDBbDwH89cEUp(1G35_PQjDFR zS{73pV;V3*D}}?(j>7+Gw;erBp`|)bw8LrV<{hSZpOayZzB6OoRhd26Y!_Hkg_um% za6Ej`tu{d5OLOqzh84jvk?iV&ut&_U#y8~WK1LOkc$gw6rnmpIH%fK0twPJF=9A(W zJWBX*d1%5KeA4m!0tINzwwIm^w+8T#B(3YB83kx>$d@&7S+8*?g&US8{J>@`qY5G5y?*&a)Z#0|WdH5asPRMYHbvB_UHY z_p-MbR`_`{3c=gjX0%whi!a7ZlVp&jl9Ac{ZX1M0k$}A?tq#=^@xZO2?rc5Qr12E7 z+G8>I>K2mdPST;8WwD~%0ISJz29NBuvx9TG(?)0V&e(#NuE3|2+Q60apQFRC=gvSk zUA;u2htV|=NDpHKuO{F;Z>(PW-RJOC&z$&sp*a|7HZAejIOVn6)RT_^`*lotijtzA z9{h%V}~_AzdMtOx(BSLGJG)+;&r~vsVv3h5R;ww zktCJZ)A!gfOE1piNl!r`Oyhc_p2#W?0AcqA>RZr*o*R7S7ord`vqTvJyFyBGgm3-N zD}m}O@kRWY;83t%z#Z$<0EvTwFcMGP8?eiK;(|Y$=w&7HVwbxPgE60W`k;&8BBW zXSMAzSx^;{=RfFyHy_PgU=ZUbI?-XTX*gI$7ejWk}3i=+pCZxZ>Y+}&xsTLS}ci7Ok; zL?xpha#?zC?5Nje6Pcbyo`;BwH?xHU_j|X(2x%v*RyQ(JPc>ZFi8v%<1_0KQJYYT%iy+!{Lb{lnuTAxh?HPBb*Wa%@cG(z6QQM^3 zcn=0YaoM7seIP=OHUYbY+>i@6Ff2a|M&@Ub0!Ga^h3w15@1GVK0ypS9rSqF5!Pb~v zbk;|@KZZ$Y+07nXF61LMH6AU4pcYDv)h1&wOXVSfq2*@24}H8kSDlme|a~i5w8x z&43163Pc?%x6a($CUI$e`9L~Tvy6)v2Ln0J_{zgdn;0LYNRnbGF2U}qF+&@D5S5W+ z>+HHb79==Ek+9)8n3<%hgBZi*3(o6RjpRT%8sPpBjRKykTXSvO$60d=lt^N7NE>DK zp&t$S<(~!(NHb<>7e3ms>a1tD6lKhG6T`A`d22MJW~q$@9Dch}2Rd?}rNGobmYJlL zSe-zNNPM`rR2Xyv)EH0v4i;>kj3j3}D$uc3nV*)*`expCg4?#xaOT4mz;IFgdbU+e zv|E@hIM#s8mj)Qt_>GKzSKq$~3&0NdOYx)N5w_rdACbtmesm|M1&Wx_JP71(W-deZg-9Ty5wj74@21MPt&ZG~oDV&YC4CIsXUxMN+* z#ar7#6#12|+=exd7thaXHDnSd0ff(x$xy*!-Qrw{BxzX)YExk{RmzXn!{S%S`ekCY z%$^m7AeOsLHIbLEZ~Z=95?rGKmtI(hvYhvTru64(AjwW4Zyr-$j0+BoPbpgGia^_t z%c-iN)al-1-rGZCE-Qq=tAE2uEi~S9K>BMdb^DSbV{?rkn`iBwV*F z1d*w>H;%BCJc37%mSJ{?P!_a3lEBZ3cs-X)>@2G)2ocL_LFrR$))F7_d(FJ=hUk#= zOmb82SH8ma@L}E%2C4BMyPHid6;qLG4asPAzWTlu?fCEw7buHXc`hZ%sABPk+Tkj$bsG7Lg_xosf{-iHtM6uo)a_S#n;w_ zg)w(NVG8K189z)#2>wVt7MbR=xP4Ir?!hz6$dnt0fMRNr!w{1DSEqdNyyi(nrYHe4 zAFQaRe?fU7Lu5d5|L zbGEb-x(#dU*CZC0a8;J!gY99H`Sr4MkaNZZ(Rdv`wBrmxX^3tdMTX2{jB24$@Pzi| zMSm?!5VRZkYA7M;l|IAA7>%xx4h=v+MEZbW9wucxTepl0R2%=|GQhr&o~q%_ivt{m zn7)3g;fz~PQ8&AP#=9TQZwW18z-IkSQER$dUQhM>RMldFEX5Pck=ruRS`D&x8GOydJvS=$&CN<9Zk`lw%Ype#xn9swi zL{6zVKCaINwi})80lBJ@-ZGWP61=5EWh{XXMiT}&U*Rx7;@t;6S>@pceNr^oce*TvZ_N8%B2 zhNoQxk`xY8TN%aYwVypbX5{XqAA;jz-1=}u5$whJ-Mvvv4DFyM2_O0kP%t{8nu*pQQTGYq{ zEBZ|^>J1vf_yy5$*IhocdR*>nqu79%$yEPZ+lf#HjH=B*i+ob>0Jxq6k( zXXk7Zt*@zgZC zX)qSUY~H?T^iiKd)>|s{O6&J~{84*GKP)QJx@*Rbr_ybkL7pgBf7ah`u4AoQaE1`` z7JOH!P8*c$aTb7Ua*<~q0%H2ajewePfAl>W8=@GLz*G{Bc!ECG$N@SLr*-=&H>SCL zlzv;I^azrPzRt*y!I`8lCRcYc9$*)tA>tHHV{j&*;CJ##1`D87lhBUK;uE|+kqDf< z0ZA4iolbHT#JkRxTk9BZP1Ele(IR*j>ip(I>FLPPc<3?ofTh$fk1d=#Bq85HURC#z zOd8xLbO`x85@1eT#HiYS_qDC-3>-TI5RtvU1w4rs9;Y){5PoX~olnM8TOfgtmquhm zpd!emF{}xuDIi* zMq^TMxeA?WeKv>w)R$LuWYEVU`@);_F1fytTJg&8!d?T#y%!E^y57b5jdeV7VIz(3 zn~pD&thj7&Y_8%1iJ|1|tTXy32(?CINN?E|?rzNe?y);;!-zAL1x5GedZbW{x?pHx zS}S{~nS=2NM^LZ;H1{V{ZRxo%GFkWQTI~f1RZ!RhUr#ZzGw+$+g3>p|idl&NUmiAd zqS|}oTu)Bfg6{XhELc*7?I#bKyMJ1ONB!dVJ){Q5C6zfMy_0EMy2AL``Dd^lC2GC| z_);AbDKIi?amAhWn{?o4CQI^jnKgxuxIZs6KXNd!ORIA9Ojq(i+oLf0sIjXh=z#3W zN(nLMZDz=rT8-x0K}?Dy!NI@;6jD|Ah}LcG)uc^ou!@G=733Fhaw}alkQXwI8@~V} z@EP`(k>5Q-h+B0lKdV^~Ob2GSnl>ArSnxj6MVwP?vlv!Sn~i*t0k^aA2ZYd-)ED4& zck$V#FUAV`IU|i4?I^u|qBtC-6*u{mT>2iv~{QQqd7m_kN?Be-)A-(5s_m?|s;q&!BPrD~AAMeKW zi;Oe8XKe_gr1)9q!_f2zIrk+HB?P^ehYc~ag?k`~sGs(sn#Q88 zyj1_%>3mA344Qn4_HfPt6%{vy9ETHjPTzN7e`gIxLGgSlDb7ege@$;qXtJG2swcAx6gNX$G2nyrLN*wJQgqhDCJS2H{(wdkEB!0iHr`*UK;O zF7SlY?oJRg0`)&>eLM6G%SWjA4BCeC5em)0`Qz=Xq&^h=A_e}t@mFsO?IG(ga%Pr|Hf~>F zR$J`qA1nf~X&m4Rz70c0Jl-QiYO!`N(Yyn@3u23 zj2BesJ|)^t@t2QLldMMl#MhJ*aZoDI{jjpz?U0`p@FJQ+44=|?;AC8P@-KY<;|P+g*;UT(mki-SWkRKt08Y*y zmD<-sbT^ypf$x*;ni{G{H~`IeXhUcZPb8ur6%q)EamCH_ZjedP+E7rr zc4>6K(}>D^i0$wI$hpyPY#|tEBX;cClD!~z=>0A_&ND~oY*$%Z|r_@VgYM&&Tmi1 z6lZ09ln^Wr;Zv}xgv>bOcyWa8a~FDiWzx2X=}xA}818U!-Sgy-0EE+flT%xa;p!@( zk%9@7Lmt3j!L*$_Uz;iOfu%O&9rJHLQG@NI(r9tzRA0(;QfrAWc5oOvvjlF9Z(xY1 zK;~shsqEgI9D-{w)T(Wd>2WM2t`?i*C$Z=7vesMu53hWC&%yUhw*^)(FH(XQA814Y{umkUTSO3J?|m z!74!x0~T@brqn zec<1^j-A$dfh&R@+uA!_uk_`pr}T>|z`8fsaB0G6zEW3=3{aq{8zd9-#$bO_fc8`~ z^%00mk|gLoN}jb4+NC_rNEP7r6N{nK<*LwIvIu(ndG~}2n?WZsiijLMC4>FI*B9`a z$r3?r1oE3gDF&6XUT|YyliJdAUlO}zm|1`JS$TM^cnd3(DIN@Jv(ZI)uQbeT7H2Z5 zCAIW5$tJR4Pze^$9eK(E7FV|9)?2zX{3Tg6s?{-?TVPyYZdTw%;N* z^nGFJ6lNFw6ftm*bUfC|7sZ|%36<)wEy%=y4Wm7*c*;t^;{e*;4?QtiTZh)d^z$Hf z?c!S1xO<|(_eZpmcBKtFF)^b0_1oNyM7eP5RSzbjRh!lP!_i8yBbB!BuTR}Aue>G) zYuk62`(xFnM#PE&34$kQahTbC@Zhznb39>hYWxXfKLQ=EaGEczrng6UT^@BX1Ap>g zGcfm7P*;zCF`;I1$z+}7pbQKsk_Hf9jP$R9B<2gChz$gMLws79$e6k!8rrQZQ1T>>sJAevN1o)BF- zE2~Sk_;D8VtG_mJeVZW`_a-*Dc8dk|R*H9t^Ah_drLK2J1H@fX!V)*;N2MumE4yJR4~-t|2*NPKl-*@Wky7tB_=ONm5yDzEP-2&ud~$4U%;+ z+f%u%=@QG z5O}O1&tC*!6bQ#0QnCMJQ$q;r|4FiiaEjerDIpl`f35dlAO9xZD%*WrIo9zsf)V>1eeTi>*nad^uOL?%%N%yAx{5q&V>-= z|J3@Qa{nRl${6zg&7jsdcn>)UVh@M~{yFe}K<27L2)V8hM6NpoZOg~;_ci@xDwMya zpg_RlkdjdN{?Y>q-(TgT{ENJQ9O|!i3I53AP&fbd2bBv!(nCzPRWe1z!oZ|3ql zs}FYOQqEp~IR_sEhAtq)Z47ZIR|xAHq9llGs(*5})Ut9j~ns7SWd#{g!;A|A;{X9rS;{XmAj=V zQ?-y%?UD2-3840Vpx^(O=J%IQ|E|yfSzCWOCddB+Z5jW??S^PY?$6o2=6{5MNt`fhBB zl)E%zH`ZZ(qcgurPAd3S-Wc=eq~6ZifT6M-;sB8qpP^p~_Fl(j`wqILTWKj=wz8{} zgzGD-Kbd;Y5fga5U?=PPt`YCnhXPg2nUr8A-8T_bLykXTmq>W@HBjn*W?cht7DK}& z&<=(MxlIo37b;FH)6mhaZEW<5vLBeAEy2tRx#uI+(tOnsmCNrXQl90E`mz{xb@Sqd zl*01q;NXK#Y}h(d!HKj{O~oKG)i=hI%Z~{lnV_p-dG`nUtD}5m5z2OS>F{F38sJ0=VCnD8&cPlV!XawX>wo`9CR%^ z2RnN=f-5pTrehsff++T*Vp`v47;`&v23{X!IpYI9n@~CY(#H`&^r*B@#fB7jR)eo~ z1nCxvu0Lu0NvX=UdcqtVUk5;w~8?10fB|$6d)6>nARkGA49Hh;bZ97+AG(QoS z3vl{z6)DVRAEOs#5MvRoaT@Gu=xgdXeh~;Npo${aDP6?(Pl|c$wUfdXS-plHYxfSE zKf@#)s8p#3nQ+g&liYo}9zLxTpAxJ0A0R$Ct|RaDC)=p)7^VAwR?5818@+&)Zz~Qv zY8Rde3`ra^NK?4SH44hcppv@ABJJSI!)URM;t{+P&W=93RCz0)Uy$U}Txp#n^CJsH zLREK#yv~YN$*o?yViaV@BY0=$Tc6+X5^u3h-&FXco5Xk5hV1K!L9MT||E2XQ?H|#9l>xkA!Epbms&L}w8?yX}gb{3#K z58Mx*m+gBzdUk2t97MVIPa8X4+?fmhT9}ZCdy{x@7iY3)=y&+eCggm;B;K?k^zh6V zL9u%I(|h`Mil?N<_E~^m`Y76=XZ(dpo=$iJDg#-rpul`$aR~`@L_W$LU zWhg{4B9kSQWwvLQkbU1mNP`Rpld%tBF0SlS$Q~(`J(MLalP!@YT-k{msf1LzvLxSU z>fYNmzV~;3uh;MO`kg=KHS>Nx=bX*k*)p}EcG-Jmc+t^*zSZ_qS*ue z@>xW4JqegCr$y8huDqVx4Sm2Ib;Tm%^u$vx6y1;?R2Pd}z2s5U2E=^uAMHM(y6oq2 zpiPNprP(*w3#y@;vxTVj_2)v@v3%y5?RJJwOS7g{L3x6MHJbyMv!+`oo(L>s_E` z=d*;|&L*XIMin&;?ro;IweMBB7eldCZ z%{p$!hPQWE*v7Bf@{pr9;znD`*QKx2c=4z=QnMC6|k1?Aw@WPU)(^b(1DDoFnPU~ykO3!Uq3P} zH#oku*!Apw7d_LX?X`G;%Rah~-52gb(_P3TgoWL*b&mUZ-UVO4=de}zjGtg7c%)tk z;2LzW1un4_=31|mepF2iv$x(FG8sFm|826ryZ3T#vZd?NU!DUP?eX*rP3fG}lCX#FuY9Or=Y^OWB%Ou63dG=+8hNsR@!ujKh_dAM}a8p2&fJe@) z^fQe*DYa9H2y@R;bBV5vIH5DDdloAS6s(~dMi9$eCY0iw7&UzBesObs9n8KzP_@) z2ZB4hOyWfjEX`QvqBNQxfp1fG0(y^dXdOLM!kycvo)_f^YJGfKb7pe|$QH*~gxthu1#HtSwD1F25QboiT2w)w=KKw0ya^Uzb&qa?I~S@0sePgcbwg8LcF3 zjVb4}tCPOEW10agndNFZKUrPlCBgQjoR1Th<+{@2Cf^D9Xz@yIzwwV1Py5^I8$zuHW*6G-B(u*{Qf?)1 zR^%(VlL-+NGZkTWQIkazGY^Ah{R3wmSnFNttL#|3`-YVF04jH(vye@Kc2UK(`yPX0$cceYIb*I2R$y)38TyBHp z4c^1|yjX3N$)R;;#~P>^5ew?~!aj!Gv#`k%(cvtMwvxR1>fSW0JhlunD;@EA$HTjq zLPQE_9TyspwZeo^h7yA}kN-?dDe%{wq)q;czqkF%;VdDjIo)p{I#|2i2dngTBQ|=d zO<`NNply)jsO|%~R4d|V>Y_blqPkBabfL7ede_q9tS$rc!K!n?lGP5)xf=H=O{<HTh_E2Ld-|;<)D86hF?h zY^`yG%iR~QPVHvBZmz%why=T{VY06!4L*tw!cNh=8`I`UaJU|xB%c0RV8$-@ z^le`_kCc&dUyZl-A^8>Ah=!1n8~`xPwguego(7yfSgL!Dg!??SdfyJQfo+m0;^U;} zor<1P$7iE&zpIn7e&fr{U&a&on+s_?J*~}MBK(Bgb*oun>-72{jB2QsN6lwfp{8F( zEAq^!i{V|~N~fjULrG7MkFwPF>wb=T%KbK1TC?tyddFhp@Je{sg9u`8Sjd^8p~5?2 zhN6z~E7TK4xA63QeB%Trx&5}%uP&EagfIB-d;bIyKOf1JmLrD!Wxh1#rv1*hO8V!H zIq?PBTXW@(kmru~eHOKjT_uKT&f16F`vMo0qT|btEa$CFb|=pFtskjdQNA29sbLcH z&>5#(<`dTD)iV66nC=G4z8>n4t?R@O^5$Pz0pL5Q@_$+<{u>wY@7w4f#L+)51OTY| zwsj#mzTlM&2N#0+Nr8FILwhuZcMJ92sF5um8YwUwD$q|BpA?BBu=ZifK29tw_iIyn zF$aj036%+2cdMTlhoFk4w}JzDTj(3RD3x5PGU0tLg*6A5@SYmTGYEw_2!4uGyCOWhGRBaX4cktPmu4@Z*o}D4Rp%qG@rCTEt z34za_vGBbv5{MhbS6FUn1-6{npmVzWxA7+kum-){R-ow3e{4_3=Np! z`v;{v6`VvH`qhZ@DmE3=<}1iUN+y+q?O$HArU}}VbS6*X(ovXFjq}1?MZ?wh>y5hO z@7ABUc8C@TUz=BVGxkj@*>mw`ms*^iL8^XrdxNwxGEgmuSJFAXNzg)_vsB%lvb&K? z^Vext7jRD%%}N`I;7ec4vHfsC@_fr`X3CS0cKEgVI}@BG)Wz{jE{Xc~OX{O&K0B@4 ztH@HCvz8S0Z1FwlPOPS@PFq?3ll6Y~J17^=VUEb*PtqaD+S0CHES#D)s;|wT?DY3o zHSTE(XdB|8oeEanw&+UOvvt<|U>?8Imx%9DYoILUH`ESC9$?`PDy}&~L0RD7X2| zKgJa!Vvv_Vs8Z!KIq`d-xH+e@7@Dlc6#i2@?AV@Rx<6mZAj}h5%s@ zVO-ygfDG?ny%y+8a)E#fmv|Ti{#Sxw003lMU4CE)FhVdA%=0e{0p?-C5DZn&%@`Vk zfHUVsW01Hl7#4*DLnR~qRRaRRv$;HQzHMnQ7GMaAZnnc=7%`U#!-1;0n=uR=xy5HttQODQSB!AL z>9R^9s+^?8%Fgdk|`u#2qTt}gGpe#QZ)DS0@nbreDD}b-_ykl2D;Apszp$C z!J?e;E*M9wi!&C3Mv_pDE@-$j061YWaD=lX^60-?fH4x{M IraF-S0MvytLjV8( diff --git a/doc/liggghtsCommandModel.html b/doc/liggghtsCommandModel.html deleted file mode 100644 index 2c0ca7e6..00000000 --- a/doc/liggghtsCommandModel.html +++ /dev/null @@ -1,44 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    liggghtsCommandModel command -

    -

    Syntax: -

    -

    Defined in liggghtsCommmands dictionary. -

    -
    liggghtsCommandModels
    -(
    -    model_x
    -    model_y
    -); 
    -
    -
    • model = name of the liggghtsCommandModel to be applied -
    -

    Examples: -

    -
    liggghtsCommandModels
    -(
    -   runLiggghts
    -   writeLiggghts
    -); 
    -
    -

    Note: This examples list might not be complete - please look for other models (liggghtsCommandModel_XY) in this documentation. -

    -

    Description: -

    -

    The liggghtsCommandModel is the base class to execute DEM commands within a CFD run. -

    -

    Restrictions: -

    -

    Works only with MPI coupling. -

    -

    Default: none. -

    - diff --git a/doc/liggghtsCommandModel_execute.html b/doc/liggghtsCommandModel_execute.html deleted file mode 100644 index 58909fe3..00000000 --- a/doc/liggghtsCommandModel_execute.html +++ /dev/null @@ -1,97 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    liggghtsCommandModel_execute command -

    -

    Syntax: -

    -

    Defined in liggghtsCommmands dictionary. -

    -
    liggghtsCommandModels
    -(
    -   execute
    -);
    -executeProps0
    -{
    -    command
    -    (
    -        run
    -        $couplingInterval
    -    );
    -    runFirst switch1; 
    -    runLast switch2;
    -    runEveryCouplingStep switch3;
    -    runEveryWriteStep switch4;
    -    verbose;
    -} 
    -
    -
    • command = LIGGGHTS command to be executed. Each word in a new line, numbers and symbols need special treatment (e.g. $couplingInterval will be replaced by correct coupling interval in the simulation) - -
    • switch1 = switch (choose on/off) if the command is executed only at first time step - -
    • switch2 = switch (choose on/off) if the command is executed only at last time step - -
    • switch3 = switch (choose on/off) if the command is executed at every coupling step - -
    • switch4 = switch (choose on/off) if the command is executed at every writing step - -
    • verbose = (normally off) for verbose run - - -
    -

    Examples: -

    -
    liggghtsCommandModels
    -(
    -   execute
    -   execute
    -);
    -executeProps0
    -{
    -    command
    -    (
    -        run
    -        $couplingInterval
    -    );
    -    runFirst off;
    -    runLast off;
    -    runEveryCouplingStep on;
    -}
    -executeProps1
    -{
    -    command
    -    (
    -        write_restart
    -        noBlanks
    -        dotdot
    -        slash
    -        DEM
    -        slash
    -        liggghts.restart_
    -        timeStamp
    -    );
    -    runFirst off;
    -    runLast off;
    -    runEveryCouplingStep off;
    -    runEveryWriteStep on;
    -} 
    -
    -

    Description: -

    -

    The execute liggghtsCommand Model can be used to execute a LIGGGHTS command during a CFD run. In above example execute_0 for instance executes "run $couplingInterval" every coupling step. $couplingInterval is automatically replaced by the correct number of DEM steps. Additionally execute_1 executes "write_restart ../DEM/liggghts.restart_$timeStamp" every writing step, where $timeStamp is automatically set. -

    -

    These rather complex execute commands can be replaced by the "readLiggghts" and "writeLiggghts" commands! -

    -

    Restrictions: None. -

    -

    Related commands: -

    -

    liggghtsCommandModel -

    - diff --git a/doc/liggghtsCommandModel_readLiggghtsData.html b/doc/liggghtsCommandModel_readLiggghtsData.html deleted file mode 100644 index 1981d499..00000000 --- a/doc/liggghtsCommandModel_readLiggghtsData.html +++ /dev/null @@ -1,49 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    liggghtsCommandModel_readLiggghtsData command -

    -

    Syntax: -

    -

    Defined in liggghtsCommmands dictionary. -

    -
    liggghtsCommandModels
    -(
    -   readLiggghtsData
    -);
    -readLiggghtsDataProps0
    -{
    -    ???
    -} 
    -
    -

    Examples: -

    -
    liggghtsCommandModels
    -(
    -   readLiggghtsData
    -   readLiggghtsData
    -);
    -readLiggghtsDataProps0
    -{
    -    ???
    -} 
    -
    -

    Description: -

    -

    The readLiggghtsData liggghtsCommand Model can be used to ??? -

    -

    Restrictions: -

    -

    Note: Model is not up to date. -

    -

    Related commands: -

    -

    liggghtsCommandModel -

    - diff --git a/doc/liggghtsCommandModel_runLiggghts.html b/doc/liggghtsCommandModel_runLiggghts.html deleted file mode 100644 index b9ad8864..00000000 --- a/doc/liggghtsCommandModel_runLiggghts.html +++ /dev/null @@ -1,44 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    liggghtsCommandModel_runLiggghts command -

    -

    Syntax: -

    -

    Defined in liggghtsCommmands dictionary. -

    -
    liggghtsCommandModels
    -(
    -   runLiggghts
    -);
    -//- optional
    -runLiggghtsProps
    -{
    -    preNo true;
    -    verbose; (optional)
    -} 
    -
    -

    Examples: -

    -
    liggghtsCommandModels
    -(
    -   runLiggghts
    -); 
    -
    -

    Description: -

    -

    The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first. -

    -

    Restrictions: Warning: the "pre no" option can cause troubles (dump data of particles changing the domain might be erroneous)! -

    -

    Related commands: -

    -

    liggghtsCommandModel -

    - diff --git a/doc/liggghtsCommandModel_writeLiggghts.html b/doc/liggghtsCommandModel_writeLiggghts.html deleted file mode 100644 index 1fa64a67..00000000 --- a/doc/liggghtsCommandModel_writeLiggghts.html +++ /dev/null @@ -1,56 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    liggghtsCommandModel_writeLiggghts command -

    -

    Syntax: -

    -

    Defined in liggghtsCommmands dictionary. -

    -
    liggghtsCommandModels
    -(
    -   writeLiggghts
    -);
    -//- optional
    -writeLiggghtsProps
    -{
    -    writeLast switch1;
    -    writeName "name";
    -    overwrite switch2;
    -    verbose;
    -} 
    -
    -
    • switch1 = switch (choose on/off) to select if only last step is stored or every write step (default on). - -
    • name = name of the restart file to be written in /$caseDir/DEM/ default (default "liggghts.restartCFDEM") - -
    • switch2 = switch (choose on/off) to select if only one restart file $name or many files $name_$timeStamp are written (default off):l -verbose = (default off) for verbose run - - -
    -

    Examples: -

    -
    liggghtsCommandModels
    -(
    -   runLiggghts
    -   writeLiggghts
    -); 
    -
    -

    Description: -

    -

    The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD write. The "writeLiggghts" command executes the command "write_restart $name", where $name is the name of the restart file, every write step. -

    -

    Restrictions: None. -

    -

    Related commands: -

    -

    liggghtsCommandModel -

    - diff --git a/doc/locateModel.html b/doc/locateModel.html deleted file mode 100644 index 58c59a0f..00000000 --- a/doc/locateModel.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel model; 
    -
    -
    • model = name of the locateModel to be applied -
    -

    Examples: -

    -
    locateModel engine; 
    -
    -

    Note: This examples list might not be complete - please look for other models (locateModel_XY) in this documentation. -

    -

    Description: -

    -

    The locateModel is the base class for models which search for the CFD cell and cellID corresponding to a position. In general it is used to find the cell a particle is located in. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/locateModel_engineSearch.html b/doc/locateModel_engineSearch.html deleted file mode 100644 index c68e36f2..00000000 --- a/doc/locateModel_engineSearch.html +++ /dev/null @@ -1,51 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel_engineSearch command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel engine;
    -engineProps
    -{
    -    treeSearch switch1;
    -} 
    -
    -
    • switch1 = switch to use tree search algorithm - - -
    -

    Examples: -

    -
    locateModel engine;
    -engineProps
    -{
    -    treeSearch true;
    -} 
    -
    -

    Description: -

    -

    The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. -The engineSearch locate Model can be used with different settings to use different algorithms: -

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

    Restrictions: none. -

    -

    Related commands: -

    -

    locateModel -

    - diff --git a/doc/locateModel_engineSearchIB.html b/doc/locateModel_engineSearchIB.html deleted file mode 100644 index 16ec8ce5..00000000 --- a/doc/locateModel_engineSearchIB.html +++ /dev/null @@ -1,70 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel_engineSearchIB command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel engineIB;
    -engineIBProps
    -{
    -    engineProps
    -    {
    -        treeSearch switch1;
    -    }
    -    zSplit value1;
    -    xySplit value2;
    -}  
    -
    -
    • switch1 = names of the finite volume scalar fields to be temporally averaged - -
    • value1 = number of z-normal layers for satellite points - -
    • value2 = number of satellite points in each layer - - -
    -

    Examples: -

    -
    locateModel engineIB;
    -engineIBProps
    -{
    -    engineProps
    -    {
    -        treeSearch false;
    -    }
    -    zSplit 8;
    -    xySplit 16;
    -} 
    -
    -

    Description: -

    -

    The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. This locate model is especially designed for parallel immersed boundary method. Each particle is represented by "satellite points" if it is distributed over several processors. -

    -

    The engineSearchIB locate Model can be used with different settings to use different algorithms: -

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

    This model is a modification of the engine search model. Instead of using the centre-cell as starting point for the engine search, further satellite points located on the surface of the sphere are checked. This ensures that (parts of) spheres can be located even when their centre is on another processor. This is especially important for parallel computations, when a sphere is about to move from one processor to another. -

    -

    Restrictions: -

    -

    Only for immersed boundary solvers! -

    -

    Related commands: -

    -

    locateModel -

    - diff --git a/doc/locateModel_engineSearchMany2Many.html b/doc/locateModel_engineSearchMany2Many.html deleted file mode 100644 index fba74cd4..00000000 --- a/doc/locateModel_engineSearchMany2Many.html +++ /dev/null @@ -1,59 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel_engineSearchMany2Many command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel engineSearchMany2Many;
    -engineSearchMany2ManyProps
    -{
    -    engineProps
    -    {
    -        treeSearch switch1;
    -    }
    -}  
    -
    -switch1 = switch to use tree search algorithm - - -

    Examples: -

    -
    locateModel engineSearchMany2Many;
    -engineSearchMany2ManyProps
    -{
    -    engineProps
    -    {
    -        treeSearch true;
    -    }
    -} 
    -
    -

    Description: -

    -

    The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. This model is a dummy for the "twoWayMany2Many" dataExchangeModel which locates using the specified "engine" during coupling. Using this model with any other dataExchangeModel will cause problems. -

    -

    The engineSearchMany2Many locateModel can be used with different settings to use different algorithms: -

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

    Restrictions: -

    -

    Use only with the twoWayMany2Many dataExchangeModel! -

    -

    Related commands: -

    -

    locateModel -

    - diff --git a/doc/locateModel_standardSearch.html b/doc/locateModel_standardSearch.html deleted file mode 100644 index d5e37a0a..00000000 --- a/doc/locateModel_standardSearch.html +++ /dev/null @@ -1,32 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel_standardSearch command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel standard;  
    -
    -

    Examples: -

    -
    locateModel standard; 
    -
    -

    Description: -

    -

    The locateModel "standard" locates the CFD cell and cellID corresponding to a given position. A very straight-forward (robust!) locate algorithm is used. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    locateModel -

    - diff --git a/doc/locateModel_turboEngineSearch.html b/doc/locateModel_turboEngineSearch.html deleted file mode 100644 index 7adacd7b..00000000 --- a/doc/locateModel_turboEngineSearch.html +++ /dev/null @@ -1,51 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    locateModel_turboEngineSearch command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    locateModel turboEngine;
    -turboEngineProps
    -{
    -    treeSearch switch1;
    -} 
    -
    -
    • switch1 = switch to use tree search algorithm - - -
    -

    Examples: -

    -
    locateModel turboEngine;
    -turboEngineProps
    -{
    -    treeSearch true;
    -} 
    -
    -

    Description: -

    -

    The locateModel "turboEngine" 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 turboEngineSearch 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 - -faceDecomp false; treeSearch true; will use a recursive tree structure to find the cell. (recommended):l - -
    -

    Restrictions: none. -

    -

    Related commands: -

    -

    locateModel -

    - diff --git a/doc/meshMotionModel.html b/doc/meshMotionModel.html deleted file mode 100644 index c056b6b4..00000000 --- a/doc/meshMotionModel.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    meshMotionModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    meshMotionModel model; 
    -
    -
    • model = name of the meshMotionModel to be applied -
    -

    Examples: -

    -
    meshMotionModel noMeshMotion; 
    -
    -

    Note: This examples list might not be complete - please look for other models (meshMotionModel_XY) in this documentation. -

    -

    Description: -

    -

    The meshMotionModel is the base class for models which manipulate the CFD mesh according to the DEM mesh motion. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/meshMotionModel_noMeshMotion.html b/doc/meshMotionModel_noMeshMotion.html deleted file mode 100644 index 5f166bd4..00000000 --- a/doc/meshMotionModel_noMeshMotion.html +++ /dev/null @@ -1,32 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    meshMotionModel_noMeshMotion command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    meshMotionModel noMeshMotion; 
    -
    -

    Examples: -

    -
    meshMotionModel noMeshMotion; 
    -
    -

    Description: -

    -

    The noMeshMotion-model is a dummy meshMotion model. -

    -

    Restrictions: None. -

    -

    Related commands: -

    -

    meshMotionModel -

    - diff --git a/doc/momCoupleModel.html b/doc/momCoupleModel.html deleted file mode 100644 index 3a37c23a..00000000 --- a/doc/momCoupleModel.html +++ /dev/null @@ -1,45 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    momCoupleModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    momCoupleModels
    -(
    -    model
    -); 
    -
    -
    • model = name of the momCoupleModel to be applied -
    -

    Examples: -

    -
    momCoupleModels
    -(
    -    implicitCouple
    -); 
    -
    -

    Note: This examples list might not be complete - please look for other models (momCoupleModel_XY) in this documentation. -

    -

    Forces can be coupled in an implicit way to the fluid solver (i.e., when solving the Navier-Stokes equations, the fluid velocity at the new time will be considered for the coupling force). This implicit coupling is typically done for the drag forces (look for "impForces()" in the implementation of the drag model). Implicit coupling is more stable (especially important for dense flows), but conflicts Newton's third law. Explicit forces are imposed on the flow solver in an explicit fashion (look for "expForces()" in the implementation of the drag model), which is less stable, but does not conflict Newton's third law. -

    -

    Note that the variable "imExSplitFactor" can be set in the couplingProperties in order to treat implicitly defined forces (in the implementation of the force model) as explicit ones. "imExSplitFactor 1.0;" is set by default, meaning that all implicit forces will be considered implicitly, whereas "imExSplitFactor 0.0;" would mean that implicitly defined forces will be treated in an explicit fashion. -

    -

    Note that the switch "treatVoidCellsAsExplicitForce true;" can be set in the couplingProperties in order to change the treatment of cells which are void of particles. This is only relevant if (i) smoothing is used, and (ii) implicit force coupling is performed. By default, the particle veloctiy field (Us) will be smoothed to obtain a meaningful reference quantity for the implicit force coupling. In case "treatVoidCellsAsExplicitForce true;" is set, however, Us will not be smoothed and implicit forces (after the smoothing has been performed) in cells void of particles be treated as explicit ones. This avoids the problem of defining Us in cells that are void of particles, but for which an implicit coupling force is obtained in the smoothing process. -Description: -

    -

    The momCoupleModel is the base class for momentum exchange between DEM and CFD simulation. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/momCoupleModel_explicitCouple.html b/doc/momCoupleModel_explicitCouple.html deleted file mode 100644 index ac6b5ba5..00000000 --- a/doc/momCoupleModel_explicitCouple.html +++ /dev/null @@ -1,52 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    momCoupleModel_explicitCouple command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    momCoupleModels
    -(
    -    explicitCouple
    -);
    -explicitCoupleProps
    -{
    -    fLimit vector;
    -} 
    -
    -
    • vector = limiter vector for explicit force term (default (1e10,1e10,1e10) ) - - -
    -

    Examples: -

    -
    momCoupleModels
    -(
    -    explicitCouple
    -);
    -explicitCoupleProps
    -{
    -    fLimit (1e3 1e2 1e4);
    -} 
    -
    -

    Description: -

    -

    The explicitCouple-model is a momCoupleModel model providing an explicit momentum source term for the CFD solver. -

    -

    Restrictions: -

    -

    Only for solvers that include explicit momentum exchange. -

    -

    Related commands: -

    -

    momCoupleModel -

    - diff --git a/doc/momCoupleModel_implicitCouple.html b/doc/momCoupleModel_implicitCouple.html deleted file mode 100644 index f2b1a00a..00000000 --- a/doc/momCoupleModel_implicitCouple.html +++ /dev/null @@ -1,62 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    momCoupleModel_implicitCouple command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    momCoupleModels
    -(
    -    implicitCouple
    -);
    -implicitCoupleProps
    -{
    -    velFieldName "U";
    -    granVelFieldName "Us";
    -    voidfractionFieldName "voidfraction";
    -    minAlphaP number;
    -} 
    -
    -
    • U = name of the finite volume fluid velocity field - -
    • Us = name of the finite volume granular velocity field - -
    • voidfraction = name of the finite volume voidfraction field - -number = minimum value for local particle volume fraction to calculate the exchange filed (default SMALL):l - -
    -

    Examples: -

    -
    momCoupleModels
    -(
    -    implicitCouple
    -);
    -implicitCoupleProps
    -{
    -    velFieldName "U";
    -    granVelFieldName "Us";
    -    voidfractionFieldName "voidfraction";
    -} 
    -
    -

    Description: -

    -

    The implicitCouple-model is a momCoupleModel model providing an implicit momentum source term for the CFD solver. -

    -

    Restrictions: -

    -

    Only for solvers that include implicit momentum exchange. -

    -

    Related commands: -

    -

    momCoupleModel -

    - diff --git a/doc/momCoupleModel_noCouple.html b/doc/momCoupleModel_noCouple.html deleted file mode 100644 index 0ec1e601..00000000 --- a/doc/momCoupleModel_noCouple.html +++ /dev/null @@ -1,40 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    momCoupleModel_noCouple command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    momCoupleModels
    -(
    -    off
    -); 
    -
    -

    Examples: -

    -
    momCoupleModels
    -(
    -    off
    -); 
    -
    -

    Description: -

    -

    The noCouple-model is a dummy momCoupleModel model providing a no momentum source term for the CFD solver. -

    -

    Restrictions: -

    -

    Only for solvers that include no momentum exchange, e.g. immersed boundary. -

    -

    Related commands: -

    -

    momCoupleModel -

    - diff --git a/doc/probeModel.html b/doc/probeModel.html deleted file mode 100644 index 72309a36..00000000 --- a/doc/probeModel.html +++ /dev/null @@ -1,42 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    probeModel command -

    -

    Syntax: -

    -

    To be activated via couplingProperties dictionary. -

    -
    probeModel myProbeModel; 
    -
    -

    Use probe model "off" to disable this feature. -

    -
    myProbeModelProps 
    -
    -
    { 
    -
    -
    }; 
    -
    -

    Examples: -

    -

    See particleProbe -

    -

    Note: This examples list might not be complete - please check below for the list of force models that can perform particle probing. -

    -

    Description: -

    -

    The probeModel feature allows to implement various probing features in CFDEM. Currently, only the particleProbe model is implemented, that performs probing of particle forces. -

    -

    Restrictions: -

    -

    None. -

    -

    Default: none. -

    - diff --git a/doc/probeModel_noProbe.html b/doc/probeModel_noProbe.html deleted file mode 100644 index 63021115..00000000 --- a/doc/probeModel_noProbe.html +++ /dev/null @@ -1,43 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    probeModel_noProbe command -

    -

    Syntax: -

    -

    To be activated via couplingProperties dictionary. -

    -
    forceModels
    -{
    -    myForceModel1
    -    myForceModel2
    -    myForceModel3
    -}; 
    -
    -

    Examples: -

    -
    probeModel off; 
    -
    -

    Note: This examples list might not be complete - please check below for the list of force models that can perform particle probing. -

    -

    Description: -

    -

    Does not perform any probing. -

    -

    Restrictions: -

    -

    None. -

    -

    Related commands which are currently enabled for particle probing: -

    -

    particleProbe -

    -

    Default: none. -

    - diff --git a/doc/regionModel.html b/doc/regionModel.html deleted file mode 100644 index 7d2304f6..00000000 --- a/doc/regionModel.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    regionModel command -

    -

    Syntax: -

    -

    Note: In the current CFDEMcoupling version, this model is no longer used. Defined in couplingProperties dictionary. -

    -
    regionModel model; 
    -
    -
    • model = name of the regionModel to be applied -
    -

    Examples: -

    -
    regionModel allRegion; 
    -
    -

    Note: This examples list might not be complete - please look for other models (regionModel_XY) in this documentation. -

    -

    Description: -

    -

    The regionModel is the base class for region models to select a certain region for coupled simulation. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/regionModel_allRegion.html b/doc/regionModel_allRegion.html deleted file mode 100644 index 048c863e..00000000 --- a/doc/regionModel_allRegion.html +++ /dev/null @@ -1,32 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    regionModel_allRegion command -

    -

    Syntax: -

    -

    Note: In the current CFDEMcoupling version, this model is no longer used. Defined in couplingProperties dictionary. -

    -
    regionModel allRegion; 
    -
    -

    Examples: -

    -
    regionModel allRegion; 
    -
    -

    Description: -

    -

    The allRegion-model is a region model including the whole CFD region for the coupling. -

    -

    Restrictions: None. -

    -

    Related commands: -

    -

    regionModel -

    - diff --git a/doc/smoothingModel.html b/doc/smoothingModel.html deleted file mode 100644 index 78e8f23e..00000000 --- a/doc/smoothingModel.html +++ /dev/null @@ -1,38 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    smoothingModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    smoothingModel model; 
    -
    -
    • model = name of the smoothingModel to be applied -
    -

    Examples: -

    -
    smoothingModel off; 
    -
    -
    smoothingModel  constDiffSmoothing; 
    -
    -

    Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation. -

    -

    ATTENTION: In case a smoothing model is used in conjunction with "PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial time directory! This is because zeroGradient boundary conditions for the fields "f" and "fSmooth" must be specified, otherwise the smoothing operation will give an Error. -

    -

    Description: -

    -

    The smoothingModel is the base class for models that smoothen the exchange fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). This is relevant in case one uses a small grid resolution compared to the local particle diameter (or parcel diameter in case one uses a parcel approach). -

    -

    Restrictions: These models are in beta testing. -

    -

    Default: none. -

    - diff --git a/doc/smoothingModel_constDiffSmoothing.html b/doc/smoothingModel_constDiffSmoothing.html deleted file mode 100644 index cf5904ab..00000000 --- a/doc/smoothingModel_constDiffSmoothing.html +++ /dev/null @@ -1,58 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    smoothingModel_constDiffSmoothing command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    smoothingModel constDiffSmoothing;
    -constDiffSmoothingProps
    -{
    -    lowerLimit number1;
    -    upperLimit number2;
    -    smoothingLength lengthScale;
    -    smoothingLengthReferenceField lengthScaleRefField;
    -} 
    -
    -
    • number1 = scalar fields will be bound to this lower value - -
    • number2 = scalar fields will be bound to this upper value - -
    • lengthScale = length scale over which the exchange fields will be smoothed out - -
    • lengthScaleRefField = length scale over which reference fields (e.g., the average particle velocity) will be smoothed out. Should be always larger than lengthScale. If not specified, will be equal to lengthScale. - - -
    -

    Examples: -

    -
    constDiffSmoothingProps
    -{
    -    lowerLimit 0.1;
    -    upperLimit 1e10;
    -    smoothingLength 1500e-6;
    -    smoothingLengthReferenceField 9000e-6;
    -} 
    -
    -

    Description: -

    -

    The "constDiffSmoothing" model is a basic smoothingModel model which reads a smoothing length scale being used for smoothing the exchange fields (voidfraction, Ksl, f if present). This model can be used for smoothing explicit force coupling fields, as well as implicit force coupling algorithms. -Smoothing for reference fields is performed to "fill in" values in cells in which these reference fields are not specified. Values calculated in the cells (via Lagrangian-To-Euler mapping) are NOT changed! These reference fields are, e.g., the average particle velocity, which are not specified in all cells in case the flow is rather dilute. -

    -

    Restrictions: This model is tested in a limited number of flow situations. -

    -

    ATTENTION: In case a smoothing model is used in conjunction with "PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial time directory! This is because zeroGradient boundary conditions for the fields "f" and "fSmooth" must be specified, otherwise the smoothing operation will give an Error. -

    -

    Related commands: -

    -

    smoothingModel -

    - diff --git a/doc/smoothingModel_noSmoothing.html b/doc/smoothingModel_noSmoothing.html deleted file mode 100644 index 40081ed7..00000000 --- a/doc/smoothingModel_noSmoothing.html +++ /dev/null @@ -1,32 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    smoothingModel_noSmoothing command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    smoothingModel off; 
    -
    -

    Examples: -

    -
    smoothingModel off; 
    -
    -

    Description: -

    -

    The "noSmoothing" model is a dummy smoothingModel model which does no smoothing. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    smoothingModel -

    - diff --git a/doc/voidFractionModel.html b/doc/voidFractionModel.html deleted file mode 100644 index 0dd37937..00000000 --- a/doc/voidFractionModel.html +++ /dev/null @@ -1,34 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel model; 
    -
    -
    • model = name of the voidfractionModel to be applied -
    -

    Examples: -

    -
    voidfractionModel centre; 
    -
    -

    Note: This examples list might not be complete - please look for other models (voidfractionModel_XY) in this documentation. -

    -

    Description: -

    -

    The voidfractionModel is the base class for models to represent the DEM particle's volume in the CFD domain via a voidfraction field. -

    -

    Restrictions: none. -

    -

    Default: none. -

    - diff --git a/doc/voidFractionModel_GaussVoidFraction.html b/doc/voidFractionModel_GaussVoidFraction.html deleted file mode 100644 index 2ad4fd92..00000000 --- a/doc/voidFractionModel_GaussVoidFraction.html +++ /dev/null @@ -1,60 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel_GaussVoidFraction command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel Gauss;
    -GaussProps
    -{
    -    maxCellsPerParticle number1;
    -    alphaMin number2;
    -    weight number3;
    -    porosity number4;
    -} 
    -
    -
    • number1 = maximum number of cells covered by a particle (search will fail when more than number1 cells are covered by the particle) - -
    • number2 = minimum limit for voidfraction - -
    • number3 = (optional) scaling of the particle volume to account for porosity or agglomerations. - -
    • number4 = (optional) diameter of the particle's representation is artificially increased according to number2 * Vparticle, volume remains unaltered! - - -
    -

    Examples: -

    -
    voidfractionModel Gauss;
    -GaussProps
    -{
    -    maxCellsPerParticle 1000;
    -    alphaMin 0.10;
    -    weight 1.;
    -    porosity 1.;
    -} 
    -
    -

    Description: -

    -

    The Gauss voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle. The volume is here distributed according to a Gaussian distribution. -

    -

    The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -

    -

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    voidfractionModel , bigParticle -

    - diff --git a/doc/voidFractionModel_IBVoidFraction.html b/doc/voidFractionModel_IBVoidFraction.html deleted file mode 100644 index bdb61e78..00000000 --- a/doc/voidFractionModel_IBVoidFraction.html +++ /dev/null @@ -1,56 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel_IBVoidFraction command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel IB;
    -IBProps
    -{
    -    maxCellsPerParticle number1;
    -    alphaMin number2;
    -    scaleUpVol number3;
    -} 
    -
    -
    • number1 = maximum number of cells covered by a particle (search will fail when more than number1 cells are covered by the particle) - -
    • number2 = minimum limit for voidfraction - -
    • number3 = diameter of the particle's representation is artificially increased according to number3 * Vparticle, volume remains unaltered! - - -
    -

    Examples: -

    -
    voidfractionModel IB;
    -IBProps
    -{
    -    maxCellsPerParticle 1000;
    -    alphaMin 0.10;
    -    scaleUpVol 5.0;
    -} 
    -
    -

    Description: -

    -

    The IB voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle. The model is specially designed for cfdemSolverIB and creates a smooth transition of the voidfraction at the particle surface. Cells which are only partially covered by solid are marked by voidfraction values between 0 and 1 respectively. -

    -

    The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -

    -

    Code of this sub-model contributed by Alice Hager, JKU. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    voidfractionModel -

    - diff --git a/doc/voidFractionModel_bigParticleVoidFraction.html b/doc/voidFractionModel_bigParticleVoidFraction.html deleted file mode 100644 index ad0b0c05..00000000 --- a/doc/voidFractionModel_bigParticleVoidFraction.html +++ /dev/null @@ -1,62 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel_bigParticleVoidFraction command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel bigParticle;
    -bigParticleProps
    -{
    -    maxCellsPerParticle number1;
    -    alphaMin number2;
    -    weight number3;
    -    porosity number4;
    -} 
    -
    -
    • number1 = maximum number of cells covered by a particle (search will fail when more than number1 cells are covered by the particle) - -
    • number2 = minimum limit for voidfraction - -
    • number3 = (optional) scaling of the particle volume to account for porosity or agglomerations. - -
    • number4 = (optional) diameter of the particle's representation is artificially increased according to number2 * Vparticle, volume remains unaltered! - - -
    -

    Examples: -

    -
    voidfractionModel bigParticle;
    -bigParticleProps
    -{
    -    maxCellsPerParticle 1000;
    -    alphaMin 0.10;
    -    weight 1.;
    -    porosity 5.0;
    -} 
    -
    -

    Description: -

    -

    The bigParticle voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle which results in a stairstep representation of the bodies within the mesh (i.e. voidfraction is either 1 (fluid) of zero (solid)). For archiving accurate results, approx. 8 cells per particle diameter are necessary. -

    -

    The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -

    -

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -

    -

    Parts of this sub-model contributed by Alice Hager, JKU. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    voidfractionModel -

    - diff --git a/doc/voidFractionModel_centreVoidFraction.html b/doc/voidFractionModel_centreVoidFraction.html deleted file mode 100644 index 94ccd154..00000000 --- a/doc/voidFractionModel_centreVoidFraction.html +++ /dev/null @@ -1,50 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel_centreVoidFraction command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel centre;
    -centreProps
    -{
    -    alphaMin number1;
    -    weight number2;
    -} 
    -
    -
    • number1 = minimum limit for voidfraction - -
    • number2 = (optional) scaling of the particle volume to account for porosity or agglomerations. - - -
    -

    Examples: -

    -
    voidfractionModel centre;
    -centreProps
    -{
    -    alphaMin 0.1;
    -    weight 1.;
    -} 
    -
    -

    Description: -

    -

    The centre voidFraction model calculates the voidfraction in a CFD cell accounting for the volume of the particles whose centres are inside the cell. -

    -

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    voidfractionModel -

    - diff --git a/doc/voidFractionModel_dividedVoidFraction.html b/doc/voidFractionModel_dividedVoidFraction.html deleted file mode 100644 index b6cbc2f6..00000000 --- a/doc/voidFractionModel_dividedVoidFraction.html +++ /dev/null @@ -1,60 +0,0 @@ - -
    CFDEMproject WWW Site - CFDEM Commands -
    - - - - -
    - -

    voidfractionModel_dividedVoidFraction command -

    -

    Syntax: -

    -

    Defined in couplingProperties dictionary. -

    -
    voidfractionModel divided;
    -dividedProps
    -{
    -    alphaMin number1;
    -    interpolation;
    -    weight number2;
    -    porosity number3;
    -} 
    -
    -
    • number1 = minimum limit for voidfraction - -
    • interpolation = flag to interpolate voidfraction to particle positions (normally off) - -
    • number2 = (optional) scaling of the particle volume to account for porosity or agglomerations. - -
    • number3 = (optional) diameter of the particle's representation is artificially increased according to number2 * Vparticle, volume remains unaltered! - - -
    -

    Examples: -

    -
    voidfractionModel divided;
    -dividedProps
    -{
    -    alphaMin 0.2;
    -} 
    -
    -

    Description: -

    -

    The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. Satellite points are used to divide the particle's volume to the touched cells. -

    -

    The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -

    -

    The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -

    -

    In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles. -The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary. -

    -

    Restrictions: none. -

    -

    Related commands: -

    -

    voidfractionModel -

    - From 20b3102d1fe1d4511b2729a3e0707ffecb22c581 Mon Sep 17 00:00:00 2001 From: danielque Date: Tue, 17 Jul 2018 09:23:56 +0200 Subject: [PATCH 02/33] [DOC] update gitignore file --- doc/.gitignore | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/doc/.gitignore b/doc/.gitignore index 44599544..9bbc53b6 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,7 +1,12 @@ -*.o -*.d -*.a -*.dep -log_* -log.* +# ignore generated files and folders +*.html +*.rst +*.inv *~ +searchindex.js + +_build +_sources +_static +_images + From cf0f5b3e179371ca025cd8d3cb0424dc0eb3ef98 Mon Sep 17 00:00:00 2001 From: danielque Date: Tue, 17 Jul 2018 10:09:33 +0200 Subject: [PATCH 03/33] [DOC] split up main page --- doc/CFDEMcoupling_Manual.txt | 368 +++++++------------------------- doc/CFDEMcoupling_about.txt | 64 ++++++ doc/CFDEMcoupling_dicts.txt | 92 ++++++++ doc/CFDEMcoupling_install.txt | 14 ++ doc/CFDEMcoupling_models.txt | 215 +++++++++++++++++++ doc/CFDEMcoupling_solvers.txt | 18 ++ doc/CFDEMcoupling_tutorials.txt | 52 +++++ 7 files changed, 531 insertions(+), 292 deletions(-) create mode 100644 doc/CFDEMcoupling_about.txt create mode 100644 doc/CFDEMcoupling_dicts.txt create mode 100644 doc/CFDEMcoupling_install.txt create mode 100644 doc/CFDEMcoupling_models.txt create mode 100644 doc/CFDEMcoupling_solvers.txt create mode 100644 doc/CFDEMcoupling_tutorials.txt diff --git a/doc/CFDEMcoupling_Manual.txt b/doc/CFDEMcoupling_Manual.txt index 5a004c21..a48f1708 100644 --- a/doc/CFDEMcoupling_Manual.txt +++ b/doc/CFDEMcoupling_Manual.txt @@ -1,309 +1,93 @@ -"CFDEMproject WWW Site"_lws :c - -:link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) -:link(of,http://www.openfoam.com) -:link(lig,http://www.cfdem.com) +"CFDEMproject Website"_lig :c :line -CFDEMcoupling Documentation :h2,c +CFDEMcoupling Documentation :h1,c + +Academic version :c + + + + :line :c,image(Portfolio_CFDEMcoupling.png) :line + + +NOTE: + +This is an academic adaptation of the CFDEMcoupling software package, released by +the Department of Particulate Flow Modelling at "Johannes Kepler University +Linz"_http://www.jku.at, Austria. +This offering is not approved or endorsed by DCS Computing GmbH, the producer of +the LIGGGHTS® and CFDEM®coupling software and owner of the LIGGGHTS +and CFDEM® trade marks. + + + + + 1. Contents :h3 + -The CFDEMcoupling documentation is organized into the following sections. If you find any errors or omissions in this manual or have suggestions for useful information to add, please send an email to the developers so the CFDEMcoupling documentation can be improved. +The CFDEMcoupling documentation is organized into the following sections. If you +find any errors or omissions in this manual or have suggestions for useful +information to add, please send an email to the developers so the CFDEMcoupling +documentation can be improved. -1.1 "About CFDEMcoupling"_#1_1 -1.2 "Installation"_#1_2 -1.3 "Tutorials"_#1_3 -1.4 "couplingProperties dictionary"_#1_4 -1.5 "liggghtsCommands dictionary"_#1_5 -1.6 "Models and solvers"_#cmd_5 :all(b) + +"About CFDEMcoupling"_CFDEMcoupling_about.html :olb,l +"Installation"_CFDEMcoupling_install.html :l +"Tutorials"_CFDEMcoupling_tutorials.html :l +"Dictionaries"_CFDEMcoupling_dicts.html :l + 4.1 "couplingProperties dictionary"_CFDEMcoupling_dicts.html#couplingProperties :ulb,b + 4.2 "liggghtsCommands dictionary"_CFDEMcoupling_dicts.html#liggghtsCommands :ule,b +"Solvers"_CFDEMcoupling_solvers.html :l +"Models"_CFDEMcoupling_models.html :l +:ole + -:line + -{src} directory including the source files of the coupling toolbox and models :ulb,l -{applications} directory including the solver files for coupled CFD-DEM simulations :l -{doc} directory including the documentation of CFDEMcoupling :l -{tutorials} directory including basic tutorial cases showing the functionality :l -:ule +:link(of,http://www.openfoam.org) +:link(lig,http://www.cfdem.com) -Details on installation are given on the "CFDEMproject WWW Site"_lws . -The functionality of this CFD-DEM framework is described via "tutorial cases"_#_1_2 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 - -This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012 - -:line -(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. - -:line - -1.2 Installation :link(1_2),h4 - -Please follow the installation routine provided at www.cfdem.com. -In order to get the latest code version, please use the git repository at http://github.com ("githubAccess"_githubAccess_public.html). - -:line - -1.3 Tutorials :link(1_3),h4 - -[General:] - -Each solver of the CFDEMcoupling comes with at least one tutorial example, showing its functionality and correct usage. Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform all necessary steps (preprocessing, run, postprocessing, visualization). - -[Location:] - -The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, which can be reached by typing "cfdemTut" - -[Structure:] - -Each case is structured in a directory called "CFD" covering the CFD relevant settings and data, and a dirctory called "DEM" covering the DEM relevant settings and data. This allows to easily expand a pure CFD or DEM simulation case to a coupled case. - -[Usage:] - -Provided that the installation is correct, the tutorials can be run via "Allrun.sh" shell script, executed by typing "./Allrun.sh". The successful run of the script might need some third party software (e.g. octave, evince, etc.). - -[Settings:] - -The main settings of a simulation are done via dictionaries: - -The DEM setup of each case is defined by a "LIGGGHTS"_lig input file located in $caseDir/DEM (e.g. in.liggghts_init). For details on the "LIGGGHTS"_lig setup, please have a look at the "LIGGGHTS"_lig manual. - -Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in "OpenFOAM(R)(*)"_of documentations (www.openFoam.com)(*). - -Settings of the coupling routines are defined in $caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to execute a LIGGGHTS command during a coupled simulation). - -:line - -1.4 "couplingProperties" dictionary :link(1_4),h4 - -[General:] - -In the "couplingProperties" dictionary the setup of the coupling routines of the CFD-DEM simulation are defined. - -[Location:] $caseDir/CFD/constant - -[Structure:] - -The dictionary is divided into two parts, "sub-models & settings" and "sub-model properties". - -In "sub-models & settings" the following routines must be specified: - -modelType :ulb,l -couplingInterval :l -voidFractionModel :l -locateModel :l -meshMotionModel :l -regionModel :l -IOModel :l -dataExchangeModel :l -averagingModel :l -forceModels :l -momCoupleModels :l -turbulenceModelType :l -:ule - -In "sub-model properties" sub-dictionaries might be defined to specify model specific parameters. - -[Settings:] - -Reasonable example settings for the "couplingProperties" dictionary are given in the tutorial cases. - -modelType :pre - -"modelType" refers to the formulation of the equations to be solved. Choose "A", "B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM. "A" requires the use of the force models gradPForce and viscForce, whereas "B" requires the force model "Archimedes". "Bfull" refers to model type I. - -couplingInterval :pre - -The coupling interval determines the time passing between two CFD-DEM data exchanges. - -A useful procedure would be: -1) Set the DEM timestep in the in.xxx file according to the needs of the pure DEM problem. -2) Set the "couplingInterval", which refers to the DEM timesteps. Depending on the problem you will need to have a close (small couplingInterval) or loose coupling. -3) Choose the CFD timestep in the controlDict. It must be equal to or smaller than the coupling time, otherwise you will get the error: "Error - TS bigger than coupling interval!". - -Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen every 0.0001s. - -:line - -1.5 "liggghtsCommands" dictionary :h4,link(1_5) - -[General:] - -In the "liggghtsCommands" dictionary liggghts commands being executed during a coupled CFD-DEM simulation are specified. - -[Location:] $caseDir/CFD/constant - -[Structure:] - -The dictionary is divided into two parts, first a list of "liggghtsCommandModels" is defined, then the settings for each model must be specified. - -[Settings:] - -Reasonable example settings for the "liggghtsCommands" dictionary are given in the tutorial cases. - -:line - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1.6 Models/Solvers :h4,link(cmd_5),link(comm) - -This section lists all CFDEMcoupling sub-models and solvers alphabetically, with a separate -listing below of styles within certain commands. - - -"IOModel"_IOModel.html, -"IOModel_basicIO"_IOModel_basicIO.html, -"IOModel_noIO"_IOModel_noIO.html, -"IOModel_sophIO"_IOModel_sophIO.html, -"IOModel_trackIO"_IOModel_trackIO.html, -"averagingModel"_averagingModel.html, -"averagingModel_dense"_averagingModel_dense.html, -"averagingModel_dilute"_averagingModel_dilute.html, -"cfdemSolverIB"_cfdemSolverIB.html, -"cfdemSolverPiso"_cfdemSolverPiso.html, -"cfdemSolverPisoScalar"_cfdemSolverPisoScalar.html, -"clockModel"_clockModel.html, -"clockModel_noClock"_clockModel_noClock.html, -"clockModel_standardClock"_clockModel_standardClock.html, -"dataExchangeModel"_dataExchangeModel.html, -"dataExchangeModel_noDataExchange"_dataExchangeModel_noDataExchange.html, -"dataExchangeModel_oneWayVTK"_dataExchangeModel_oneWayVTK.html, -"dataExchangeModel_twoWayFiles"_dataExchangeModel_twoWayFiles.html, -"dataExchangeModel_twoWayMPI"_dataExchangeModel_twoWayMPI.html, -"dataExchangeModel_twoWayMany2Many"_dataExchangeModel_twoWayMany2Many.html, -"forceModel"_forceModel.html, -"forceModel_Archimedes"_forceModel_Archimedes.html, -"forceModel_ArchimedesIB"_forceModel_ArchimedesIB.html, -"forceModel_DiFeliceDrag"_forceModel_DiFeliceDrag.html, -"forceModel_dSauter"_forceModel_dSauter.html, -"forceModel_GidaspowDrag"_forceModel_GidaspowDrag.html, -"forceModel_KochHillDrag"_forceModel_KochHillDrag.html, -"forceModel_LaEuScalarTemp"_forceModel_LaEuScalarTemp.html, -"forceModel_MeiLift"_forceModel_MeiLift.html, -"forceModel_SchillerNaumannDrag"_forceModel_SchillerNaumannDrag.html, -"forceModel_ShirgaonkarIB"_forceModel_ShirgaonkarIB.html, -"forceModel_fieldStore"_forceModel_fieldStore.html, -"forceModel_pdCorrelation"_forceModel_pdCorrelation.html, -"forceModel_gradPForce"_forceModel_gradPForce.html, -"forceModel_noDrag"_forceModel_noDrag.html, -"forceModel_particleCellVolume"_forceModel_particleCellVolume.html, -"forceModel_virtualMassForce"_forceModel_virtualMassForce.html, -"forceModel_viscForce"_forceModel_viscForce.html, -"forceSubModel"_forceSubModel.html, -"forceSubModel_ImEx"_forceSubModel_ImEx.html, -"forceSubModel_ImExCorr"_forceSubModel_ImExCorr.html, -"liggghtsCommandModel"_liggghtsCommandModel.html, -"liggghtsCommandModel_execute"_liggghtsCommandModel_execute.html, -"liggghtsCommandModel_readLiggghtsData"_liggghtsCommandModel_readLiggghtsData.html, -"liggghtsCommandModel_runLiggghts"_liggghtsCommandModel_runLiggghts.html, -"liggghtsCommandModel_writeLiggghts"_liggghtsCommandModel_writeLiggghts.html, -"locateModel"_locateModel.html, -"locateModel_engineSearch"_locateModel_engineSearch.html, -"locateModel_engineSearchIB"_locateModel_engineSearchIB.html, -"locateModel_engineSearchMany2Many"_locateModel_engineSearchMany2Many.html, -"locateModel_standardSearch"_locateModel_standardSearch.html, -"locateModel_turboEngineSearch"_locateModel_turboEngineSearch.html, -"meshMotionModel"_meshMotionModel.html, -"meshMotionModel_noMeshMotion"_meshMotionModel_noMeshMotion.html, -"momCoupleModel"_momCoupleModel.html, -"momCoupleModel_explicitCouple"_momCoupleModel_explicitCouple.html, -"momCoupleModel_implicitCouple"_momCoupleModel_implicitCouple.html, -"momCoupleModel_noCouple"_momCoupleModel_noCouple.html, -"probeModel"_probeModel.html, -"probeModel_noProbe"_probeModel_noProbe.html, -"regionModel"_regionModel.html, -"regionModel_allRegion"_regionModel_allRegion.html, -"smoothingModel"_smoothingModel.html, -"smoothingModel_constDiffSmoothing"_smoothingModel_constDiffSmoothing.html, -"smoothingModel_noSmoothing"_smoothingModel_noSmoothing.html, -"voidfractionModel"_voidFractionModel.html, -"voidfractionModel_GaussVoidFraction"_voidFractionModel_GaussVoidFraction.html, -"voidfractionModel_IBVoidFraction"_voidFractionModel_IBVoidFraction.html, -"voidfractionModel_bigParticleVoidFraction"_voidFractionModel_bigParticleVoidFraction.html, -"voidfractionModel_centreVoidFraction"_voidFractionModel_centreVoidFraction.html, -"voidfractionModel_dividedVoidFraction"_voidFractionModel_dividedVoidFraction.html :tb(c=2,ea=c) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt new file mode 100644 index 00000000..962177c0 --- /dev/null +++ b/doc/CFDEMcoupling_about.txt @@ -0,0 +1,64 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +1. About CFDEMcoupling :link(1_1),h3 + +CFDEMcoupling provides an open source parallel coupled CFD-DEM framework +combining the strengths of the "LIGGGHTS"_lig DEM code and the Open Source CFD +package "OpenFOAM(R)(*)"_of. The CFDEMcoupling toolbox allows to expand standard +CFD solvers of "OpenFOAM(R)(*)"_of to include a coupling to the DEM code +"LIGGGHTS"_lig. 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 :ulb,l +its MPI parallelization enables to use it for large scale problems :l +the "forum"_lig on CFD-DEM gives the possibility to exchange with other users / developers :l +the use of Git allows to easily update to the latest version :l +basic documentation is provided :l +:ule + +The file structure: + +{src} directory including the source files of the coupling toolbox and models :ulb,l +{applications} directory including the solver files for coupled CFD-DEM simulations :l +{doc} directory including the documentation of CFDEMcoupling :l +{tutorials} directory including basic tutorial cases showing the functionality :l +:ule + +Details on installation are given on the "CFDEMproject WWW Site"_lig . +The functionality of this CFD-DEM framework is described via "tutorial +cases"_CFDEMcoupling_tutorials.html 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 + +This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012 + +:line + +NOTE: +(*) This offering is not approved or endorsed by OpenCFD Limited, the producer +of the OpenFOAM software and owner of the OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, a wholly owned +subsidiary of the ESI Group. + +:link(of,http://www.openfoam.org) +:link(lig,http://www.cfdem.com) + + diff --git a/doc/CFDEMcoupling_dicts.txt b/doc/CFDEMcoupling_dicts.txt new file mode 100644 index 00000000..6dd87dac --- /dev/null +++ b/doc/CFDEMcoupling_dicts.txt @@ -0,0 +1,92 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +4. Dictionaries :link(1_4),h3 + +4.1 "couplingProperties" dictionary :link(couplingProperties),h4 + +[General:] + +In the "couplingProperties" dictionary the setup of the coupling routines of the +CFD-DEM simulation are defined. + +[Location:] $caseDir/CFD/constant + +[Structure:] + +The dictionary is divided into two parts, "sub-models & settings" and "sub-model +properties". + +In "sub-models & settings" the following routines must be specified: + +modelType :ulb,l +couplingInterval :l +voidFractionModel :l +locateModel :l +meshMotionModel :l +regionModel :l +IOModel :l +dataExchangeModel :l +averagingModel :l +forceModels :l +momCoupleModels :l +turbulenceModelType :l +:ule + +In "sub-model properties" sub-dictionaries might be defined to specify model +specific parameters. + +[Settings:] + +Reasonable example settings for the "couplingProperties" dictionary are given in +the tutorial cases. + +modelType :pre + +"modelType" refers to the formulation of the equations to be solved. Choose "A", +"B" or "Bfull", according to Zhou et al. (2010): "Discrete particle simulation +of particle-fluid flow: model formulations and their applicability", JFM. "A" +requires the use of the force models gradPForce and viscForce, whereas "B" +requires the force model "Archimedes". "Bfull" refers to model type I. + +couplingInterval :pre + +The coupling interval determines the time passing between two CFD-DEM data +exchanges. + +A useful procedure would be: + +Set the DEM timestep in the in.xxx file according to the needs of the pure DEM problem. :olb,l +Set the "couplingInterval", which refers to the DEM timesteps. Depending on the problem you will need to have a close (small couplingInterval) or loose coupling. :l +Choose the CFD timestep in the controlDict. It must be equal to or smaller than the coupling time, otherwise you will get the error: "Error - TS bigger than coupling interval!". :l,ole + +Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen +every 0.0001s. + +:line + +4.2 "liggghtsCommands" dictionary :link(liggghtsCommands),h4 + +[General:] + +In the "liggghtsCommands" dictionary liggghts commands being executed during a +coupled CFD-DEM simulation are specified. + +[Location:] $caseDir/CFD/constant + +[Structure:] + +The dictionary is divided into two parts, first a list of +"liggghtsCommandModels" is defined, then the settings for each model must be +specified. + +[Settings:] + +Reasonable example settings for the "liggghtsCommands" dictionary are given in +the tutorial cases. + + diff --git a/doc/CFDEMcoupling_install.txt b/doc/CFDEMcoupling_install.txt new file mode 100644 index 00000000..540e7b4b --- /dev/null +++ b/doc/CFDEMcoupling_install.txt @@ -0,0 +1,14 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +2. Installation :link(1_2),h3 + +Please follow the installation routine provided at www.cfdem.com. +In order to get the latest code version, please use the git repository at +http://github.com ("githubAccess"_githubAccess_public.html). + + diff --git a/doc/CFDEMcoupling_models.txt b/doc/CFDEMcoupling_models.txt new file mode 100644 index 00000000..bba2118f --- /dev/null +++ b/doc/CFDEMcoupling_models.txt @@ -0,0 +1,215 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +6. Models :h3,link(1_6),link(comm) + +This section lists all CFDEMcoupling sub-models alphabetically, with +a separate listing below of styles within certain commands. + +6.1 I/O models :h4 + +The "IOModel"_IOModel.html keyword entry specifies the model for writing output +data. + +"basicIO"_IOModel_basicIO.html, +"noIO"_IOModel_noIO.html, +"sophIO"_IOModel_sophIO.html, +"trackIO"_IOModel_trackIO.html :tb(c=2,ea=c) + + +6.2 Averaging models :h4 + +The "averagingModel"_averagingModel.html keyword entry defines the model used to +map the Lagrangian data to Eulerian values. + +"dense"_averagingModel_dense.html, +"dilute"_averagingModel_dilute.html :tb(c=2,ea=c) + + +6.3 Chemistry models :h4 + +The "chemistryModels"_chemistryModel.html keyword is used to specify a list of +models used for chemical reaction calculations. + +"diffusionCoefficients"_chemistryModel_diffusionCoefficients.html, +"massTransferCoeff"_chemistryModel_massTransferCoeff.html, +noChemistry, +reactantPerParticle, +"species"_chemistryModel_species.html :tb(c=2,ea=c) + + +6.4 Clock models :h4 + +The "clockModel"_clockModel.html keyword entry specifies the model used to +examine the CFDEMcoupling code with respect to runtime. + +"noClock"_clockModel_noClock.html, +"standardClock"_clockModel_standardClock.html :tb(c=2,ea=c) + + +6.5 Data exchange models :h4 + +The "dataExchangeModel"_dataExchangeModel.html keyword entry specifies the model +that performs the data exchange between the DEM code and the CFD code. + +"noDataExchange"_dataExchangeModel_noDataExchange.html, +"oneWayVTK"_dataExchangeModel_oneWayVTK.html, +"twoWayFiles"_dataExchangeModel_twoWayFiles.html, +"twoWayMPI"_dataExchangeModel_twoWayMPI.html, +"twoWayMany2Many"_dataExchangeModel_twoWayMany2Many.html :tb(c=2,ea=c) + + +6.6 Energy models :h4 + +The {energyModels} keyword specifies a list of energy models used for e.g. +compressible, reacting flows. + +heatTransferGunn, +heatTransferGunnImplicit, +heatTransferGunnPartField, +reactionHeat :tb(c=2,ea=c) + + +6.7 Force models :h4 + +The "forceModels"_forceModel.html keyword specifies a list of models that exert +a force on each DEM particle. + +"Archimedes"_forceModel_Archimedes.html, +"ArchimedesIB"_forceModel_ArchimedesIB.html, +BeetstraDrag, +BeetstraDragPoly, +"DiFeliceDrag"_forceModel_DiFeliceDrag.html, +"dSauter"_forceModel_dSauter.html, +Fines, +"GidaspowDrag"_forceModel_GidaspowDrag.html, +"KochHillDrag"_forceModel_KochHillDrag.html, +"LaEuScalarTemp"_forceModel_LaEuScalarTemp.html, +"MeiLift"_forceModel_MeiLift.html, +"SchillerNaumannDrag"_forceModel_SchillerNaumannDrag.html, +"ShirgaonkarIB"_forceModel_ShirgaonkarIB.html, +"fieldStore"_forceModel_fieldStore.html, +"fieldTimeAverage"_forceModel_fieldTimeAverage.html, +"gradPForce"_forceModel_gradPForce.html, +granKineticEnergy, +"interface"_forceModel_interface.html, +"noDrag"_forceModel_noDrag.html, +"particleCellVolume"_forceModel_particleCellVolume.html, +"pdCorrelation"_forceModel_pdCorrelation.html, +"virtualMassForce"_forceModel_virtualMassForce.html, +"viscForce"_forceModel_viscForce.html, +"volWeightedAverage"_forceModel_volWeightedAverage.html :tb(c=2,ea=c) + + +6.7.1 Force sub-models :h5 + +The "forceSubModels"_forceSubModel.html keyword specifies a list +of models that hold settings for a force model. + +"ImEx"_forceSubModel_ImEx.html, +ScaleForce, +scaleForceBoundary :tb(c=2,ea=c) + + +6.8 LIGGGHTS command models :h4 + +The "liggghtsCommandModels"_liggghtsCommandModel.html keyword specifies a list +of models that execute LIGGGHTS commands within a CFD run. + +"execute"_liggghtsCommandModel_execute.html, +"readLiggghtsData"_liggghtsCommandModel_readLiggghtsData.html, +"runLiggghts"_liggghtsCommandModel_runLiggghts.html, +"writeLiggghts"_liggghtsCommandModel_writeLiggghts.html :tb(c=2,ea=c) + + +6.9 Locate models :h4 + +The "locateModel"_locateModel.html keyword entry specifies the model used to +search the CFD mesh for the CFD cell corresponding to a given position. + +"engineSearch"_locateModel_engineSearch.html, +"engineSearchIB"_locateModel_engineSearchIB.html, +"engineSearchMany2Many"_locateModel_engineSearchMany2Many.html, +"standardSearch"_locateModel_standardSearch.html, +"turboEngineSearch"_locateModel_turboEngineSearch.html :tb(c=2,ea=c) + + +6.10 Mesh motion models :h4 + +The "meshMotionModel"_meshMotionModel.html keyword entry specifies the model +used to manipulate the CFD mesh according to the DEM mesh motion. + +"noMeshMotion"_meshMotionModel_noMeshMotion.html :tb(c=2,ea=c) + + +6.11 Momentum coupling models :h4 + +The "momCoupleModels"_momCoupleModel.html keyword specifies a list of models +used for momentum exchange between DEM and CFD simulation + +"explicitCouple"_momCoupleModel_explicitCouple.html, +"implicitCouple"_momCoupleModel_implicitCouple.html, +"noCouple"_momCoupleModel_noCouple.html :tb(c=2,ea=c) + + +6.12 Other force models :h4 + +The {otherForceModels} keyword specifies a list of models that exert a force on +each DEM particle. + +expParticleForces, +gravity, +weightSecondaryPhase :tb(c=2,ea=c) + + +6.13 Probe models :h4 + +The "probeModel"_probeModel.html keyword entry specifies the probing features in +CFDEMcoupling simulations. + +"noProbe"_probeModel_noProbe.html, +"particleProbe"_probeModel_particleProbe.html :tb(c=2,ea=c) + + +6.14 Region models :h4 + +The "regionModel"_regionModel.html keyword entry specifies the model used to +select a certain region for coupled simulations. + +"allRegion"_regionModel_allRegion.html :tb(c=2,ea=c) + + +6.15 Smoothing models :h4 + +The "smoothingModel"_smoothingModel.html keyword entry specifies the model for +smoothing the exchange fields. + +"constDiffSmoothing"_smoothingModel_constDiffSmoothing.html, +"noSmoothing"_smoothingModel_noSmoothing.html :tb(c=2,ea=c) + + +6.16 Thermal conductivity models :h4 + +The {thermCondModel} keyword entry specifies the model for the thermal +conductivity of the fluid phase in the presence of particles. + +SyamlalThermCond, +ZehnerSchluenderThermCond, +noTherm :tb(c=2,ea=c) + + +6.17 Void fraction models :h4 + +The "voidfractionModel"_voidFractionModel.html keyword entry specifies the model +accounting for the volume of the particles in the CFD domain. + +"GaussVoidFraction"_voidFractionModel_GaussVoidFraction.html, +"IBVoidFraction"_voidFractionModel_IBVoidFraction.html, +"bigParticleVoidFraction"_voidFractionModel_bigParticleVoidFraction.html, +"centreVoidFraction"_voidFractionModel_centreVoidFraction.html, +"dividedVoidFraction"_voidFractionModel_dividedVoidFraction.html :tb(c=2,ea=c) + diff --git a/doc/CFDEMcoupling_solvers.txt b/doc/CFDEMcoupling_solvers.txt new file mode 100644 index 00000000..0f76f198 --- /dev/null +++ b/doc/CFDEMcoupling_solvers.txt @@ -0,0 +1,18 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +5. Solvers :h3,link(1_5) + +This section lists all CFDEMcoupling solvers alphabetically. + +"cfdemSolverIB"_cfdemSolverIB.html, +"cfdemSolverPiso"_cfdemSolverPiso.html, +"cfdemSolverPisoScalar"_cfdemSolverPisoScalar.html, +cfdemSolverRhoPimple, +cfdemSolverRhoPimpleChem, +cfdemSolverRhoSimple :tb(c=2,ea=c) + diff --git a/doc/CFDEMcoupling_tutorials.txt b/doc/CFDEMcoupling_tutorials.txt new file mode 100644 index 00000000..238a1e2b --- /dev/null +++ b/doc/CFDEMcoupling_tutorials.txt @@ -0,0 +1,52 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +3. Tutorials :link(1_3),h3 + +[General:] + +Each solver of the CFDEMcoupling comes with at least one tutorial example, +showing its functionality and correct usage. Provided that the installation is +correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts +perform all necessary steps (preprocessing, run, postprocessing, visualization). + +[Location:] + +The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, which +can be reached by typing "cfdemTut" + +[Structure:] + +Each case is structured in a directory called "CFD" covering the CFD relevant +settings and data, and a dirctory called "DEM" covering the DEM relevant +settings and data. This allows to easily expand a pure CFD or DEM simulation +case to a coupled case. + +[Usage:] + +Provided that the installation is correct, the tutorials can be run via +"Allrun.sh" shell script, executed by typing "./Allrun.sh". The successful run +of the script might need some third party software (e.g. octave, evince, etc.). + +[Settings:] + +The main settings of a simulation are done via dictionaries: + +The DEM setup of each case is defined by a "LIGGGHTS"_lig input file located in +$caseDir/DEM (e.g. in.liggghts_init). For details on the "LIGGGHTS"_lig setup, +please have a look at the "LIGGGHTS"_lig manual. + +Standard CFD settings are defined in $caseDir/CFD/constant (e.g. +transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. +fvSchemes, controlDict). You can find more information on that in +"OpenFOAM(R)(*)"_of documentations (www.openFoam.com)(*). + +Settings of the coupling routines are defined in +$caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange +model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to +execute a LIGGGHTS command during a coupled simulation). + From eb32f2741de6a679d1870d87751ee7c1d54f5e53 Mon Sep 17 00:00:00 2001 From: danielque Date: Tue, 17 Jul 2018 14:01:20 +0200 Subject: [PATCH 04/33] [DOC] remove superfluous lines --- doc/chemistryModel.txt | 2 -- doc/forceModel.txt | 3 --- doc/githubAccess_public.txt | 1 - 3 files changed, 6 deletions(-) diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index 458d52c8..36e51964 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -40,6 +40,4 @@ None. "species"_chemistryModel_species.html, "diffusionCoefficient"_chemistryModel_diffusionCoefficient.html, "massTransferCoeff"_chemistryModel_massTransferCoeffs.html -Note: This examples list may be incomplete - please look for other models (forceModel_XY) in this documentation. - [Default:] none. diff --git a/doc/forceModel.txt b/doc/forceModel.txt index 2ada849a..bda922a2 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -27,7 +27,6 @@ forceModels DiFeliceDrag ); :pre -Note: This examples list might not be complete - please look for other models (forceModel_XY) in this documentation. [Description:] @@ -41,6 +40,4 @@ None. "Archimedes"_forceModel_Archimedes.html, "DiFeliceDrag"_forceModel_DiFeliceDrag.html, "gradPForce"_forceModel_gradPForce.html, "viscForce"_forceModel_viscForce.html,"dSauter"_forceModel_dSauter.html -Note: This examples list may be incomplete - please look for other models (forceModel_XY) in this documentation. - [Default:] none. diff --git a/doc/githubAccess_public.txt b/doc/githubAccess_public.txt index f72df624..d1660464 100644 --- a/doc/githubAccess_public.txt +++ b/doc/githubAccess_public.txt @@ -7,7 +7,6 @@ :line githubAccess_public :h3 -:line [Description:] From 50eb58eb4e57326159d636e5fd01abbcc2f906b4 Mon Sep 17 00:00:00 2001 From: danielque Date: Tue, 17 Jul 2018 14:02:24 +0200 Subject: [PATCH 05/33] [DOC] fix links --- doc/chemistryModel.txt | 2 +- doc/voidFractionModel_GaussVoidFraction.txt | 3 ++- doc/voidFractionModel_IBVoidFraction.txt | 2 +- doc/voidFractionModel_bigParticleVoidFraction.txt | 2 +- doc/voidFractionModel_centreVoidFraction.txt | 2 +- doc/voidFractionModel_dividedVoidFraction.txt | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index 36e51964..941d64e9 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -38,6 +38,6 @@ None. [Related commands:] -"species"_chemistryModel_species.html, "diffusionCoefficient"_chemistryModel_diffusionCoefficient.html, "massTransferCoeff"_chemistryModel_massTransferCoeffs.html +"species"_chemistryModel_species.html, "diffusionCoefficient"_chemistryModel_diffusionCoefficients.html, "massTransferCoeff"_chemistryModel_massTransferCoeff.html [Default:] none. diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index ceca74b2..fcb1f7e0 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -49,5 +49,6 @@ The particle volume occupied in the CFD domain can be adjusted by the parameter [Related commands:] -"voidfractionModel"_voidfractionModel.html , "bigParticle"_voidFractionModel_bigParticleVoidFraction.html +"voidfractionModel"_voidFractionModel.html, +"bigParticle"_voidFractionModel_bigParticleVoidFraction.html diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index d300c8b9..0e97a396 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -46,5 +46,5 @@ Code of this sub-model contributed by Alice Hager, JKU. [Related commands:] -"voidfractionModel"_voidfractionModel.html +"voidfractionModel"_voidFractionModel.html diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index d6d43299..15cecec9 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -51,5 +51,5 @@ Parts of this sub-model contributed by Alice Hager, JKU. [Related commands:] -"voidfractionModel"_voidfractionModel.html +"voidfractionModel"_voidFractionModel.html diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index 60141f57..e96a0754 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -41,5 +41,5 @@ The particle volume occupied in the CFD domain can be adjusted by the parameter [Related commands:] -"voidfractionModel"_voidfractionModel.html +"voidfractionModel"_voidFractionModel.html diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index b2ce76f5..ae215590 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -49,5 +49,5 @@ The void fraction calculation is based on a three-step approach (reset, set and [Related commands:] -"voidfractionModel"_voidfractionModel.html +"voidfractionModel"_voidFractionModel.html From 6b7c6eaa3ba18c2fc763c1bb3a68eaec3f32bfc3 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 13:25:19 +0200 Subject: [PATCH 06/33] [DOC] fix actual model names --- doc/CFDEMcoupling_models.txt | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/doc/CFDEMcoupling_models.txt b/doc/CFDEMcoupling_models.txt index bba2118f..14a43de4 100644 --- a/doc/CFDEMcoupling_models.txt +++ b/doc/CFDEMcoupling_models.txt @@ -16,7 +16,7 @@ The "IOModel"_IOModel.html keyword entry specifies the model for writing output data. "basicIO"_IOModel_basicIO.html, -"noIO"_IOModel_noIO.html, +"off"_IOModel_noIO.html, "sophIO"_IOModel_sophIO.html, "trackIO"_IOModel_trackIO.html :tb(c=2,ea=c) @@ -37,7 +37,7 @@ models used for chemical reaction calculations. "diffusionCoefficients"_chemistryModel_diffusionCoefficients.html, "massTransferCoeff"_chemistryModel_massTransferCoeff.html, -noChemistry, +"off"_chemistryModel_noChemistry.html, reactantPerParticle, "species"_chemistryModel_species.html :tb(c=2,ea=c) @@ -47,7 +47,7 @@ reactantPerParticle, The "clockModel"_clockModel.html keyword entry specifies the model used to examine the CFDEMcoupling code with respect to runtime. -"noClock"_clockModel_noClock.html, +"off"_clockModel_noClock.html, "standardClock"_clockModel_standardClock.html :tb(c=2,ea=c) @@ -81,7 +81,7 @@ a force on each DEM particle. "Archimedes"_forceModel_Archimedes.html, "ArchimedesIB"_forceModel_ArchimedesIB.html, -BeetstraDrag, +"BeetstraDrag"_forceModel_BeetstraDrag.html, BeetstraDragPoly, "DiFeliceDrag"_forceModel_DiFeliceDrag.html, "dSauter"_forceModel_dSauter.html, @@ -115,7 +115,7 @@ ScaleForce, scaleForceBoundary :tb(c=2,ea=c) -6.8 LIGGGHTS command models :h4 +6.8 LIGGGHTS command models :h4,link(lcm) The "liggghtsCommandModels"_liggghtsCommandModel.html keyword specifies a list of models that execute LIGGGHTS commands within a CFD run. @@ -131,11 +131,11 @@ of models that execute LIGGGHTS commands within a CFD run. The "locateModel"_locateModel.html keyword entry specifies the model used to search the CFD mesh for the CFD cell corresponding to a given position. -"engineSearch"_locateModel_engineSearch.html, -"engineSearchIB"_locateModel_engineSearchIB.html, +"engine"_locateModel_engineSearch.html, +"engineIB"_locateModel_engineSearchIB.html, "engineSearchMany2Many"_locateModel_engineSearchMany2Many.html, -"standardSearch"_locateModel_standardSearch.html, -"turboEngineSearch"_locateModel_turboEngineSearch.html :tb(c=2,ea=c) +"standard"_locateModel_standardSearch.html, +"turboEngine"_locateModel_turboEngineSearch.html :tb(c=2,ea=c) 6.10 Mesh motion models :h4 @@ -153,7 +153,7 @@ used for momentum exchange between DEM and CFD simulation "explicitCouple"_momCoupleModel_explicitCouple.html, "implicitCouple"_momCoupleModel_implicitCouple.html, -"noCouple"_momCoupleModel_noCouple.html :tb(c=2,ea=c) +"off"_momCoupleModel_noCouple.html :tb(c=2,ea=c) 6.12 Other force models :h4 @@ -171,7 +171,7 @@ weightSecondaryPhase :tb(c=2,ea=c) The "probeModel"_probeModel.html keyword entry specifies the probing features in CFDEMcoupling simulations. -"noProbe"_probeModel_noProbe.html, +"off"_probeModel_noProbe.html, "particleProbe"_probeModel_particleProbe.html :tb(c=2,ea=c) @@ -189,7 +189,7 @@ The "smoothingModel"_smoothingModel.html keyword entry specifies the model for smoothing the exchange fields. "constDiffSmoothing"_smoothingModel_constDiffSmoothing.html, -"noSmoothing"_smoothingModel_noSmoothing.html :tb(c=2,ea=c) +"off"_smoothingModel_noSmoothing.html :tb(c=2,ea=c) 6.16 Thermal conductivity models :h4 @@ -207,9 +207,9 @@ noTherm :tb(c=2,ea=c) The "voidfractionModel"_voidFractionModel.html keyword entry specifies the model accounting for the volume of the particles in the CFD domain. -"GaussVoidFraction"_voidFractionModel_GaussVoidFraction.html, -"IBVoidFraction"_voidFractionModel_IBVoidFraction.html, -"bigParticleVoidFraction"_voidFractionModel_bigParticleVoidFraction.html, -"centreVoidFraction"_voidFractionModel_centreVoidFraction.html, -"dividedVoidFraction"_voidFractionModel_dividedVoidFraction.html :tb(c=2,ea=c) +"Gauss"_voidFractionModel_GaussVoidFraction.html, +"IB"_voidFractionModel_IBVoidFraction.html, +"bigParticle"_voidFractionModel_bigParticleVoidFraction.html, +"centre"_voidFractionModel_centreVoidFraction.html, +"divided"_voidFractionModel_dividedVoidFraction.html :tb(c=2,ea=c) From b6784afb1a5f13d40fb480eb47a397e90867a79e Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 13:36:48 +0200 Subject: [PATCH 07/33] [DOC] fix up OpenFOAM disclaimer --- doc/CFDEMcoupling_about.txt | 9 +++++---- doc/CFDEMcoupling_tutorials.txt | 9 ++++++++- doc/cfdemSolverIB.txt | 10 ++++++---- doc/cfdemSolverPiso.txt | 11 ++++++----- doc/cfdemSolverPisoScalar.txt | 9 ++++++--- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt index 962177c0..c58c6136 100644 --- a/doc/CFDEMcoupling_about.txt +++ b/doc/CFDEMcoupling_about.txt @@ -53,10 +53,11 @@ This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012 :line NOTE: -(*) This offering is not approved or endorsed by OpenCFD Limited, the producer -of the OpenFOAM software and owner of the OPENFOAM(R) and OpenCFD(R) trade marks. -OPENFOAM(R) is a registered trade mark of OpenCFD Limited, a wholly owned -subsidiary of the ESI Group. +(*) This offering is not approved or endorsed by OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com, and owner of the +OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com. :link(of,http://www.openfoam.org) :link(lig,http://www.cfdem.com) diff --git a/doc/CFDEMcoupling_tutorials.txt b/doc/CFDEMcoupling_tutorials.txt index 238a1e2b..52eae24d 100644 --- a/doc/CFDEMcoupling_tutorials.txt +++ b/doc/CFDEMcoupling_tutorials.txt @@ -43,10 +43,17 @@ please have a look at the "LIGGGHTS"_lig manual. Standard CFD settings are defined in $caseDir/CFD/constant (e.g. transportProperties, RASproperties, etc.) and $caseDir/CFD/system (e.g. fvSchemes, controlDict). You can find more information on that in -"OpenFOAM(R)(*)"_of documentations (www.openFoam.com)(*). +"OpenFOAM(R)(*)"_of documentations. Settings of the coupling routines are defined in $caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to execute a LIGGGHTS command during a coupled simulation). +NOTE: +(*) This offering is not approved or endorsed by OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com, and owner of the +OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com. + diff --git a/doc/cfdemSolverIB.txt b/doc/cfdemSolverIB.txt index 4bb7c2af..93604faa 100644 --- a/doc/cfdemSolverIB.txt +++ b/doc/cfdemSolverIB.txt @@ -37,8 +37,10 @@ GONIVA, C., KLOSS, C., HAGER,A., WIERINK, G. and PIRKER, S. (2011): "A MULTI-PUR and HAGER, A., KLOSS, C. and GONIVA, C. (2011): "TOWARDS AN EFFICIENT IMMERSED BOUNDARY METHOD WITHIN AN OPEN SOURCE FRAMEWORK", Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, Trondheim, Norway +NOTE: +(*) This offering is not approved or endorsed by OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com, and owner of the +OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com. -:line -(*) "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. - -:line diff --git a/doc/cfdemSolverPiso.txt b/doc/cfdemSolverPiso.txt index 3885699b..0ae86d3c 100644 --- a/doc/cfdemSolverPiso.txt +++ b/doc/cfdemSolverPiso.txt @@ -16,9 +16,10 @@ see: GONIVA, C., KLOSS, C., HAGER,A. and PIRKER, S. (2010): "An Open Source CFD-DEM Perspective", Proc. of OpenFOAM Workshop, Göteborg, June 22.-24. +NOTE: +(*) This offering is not approved or endorsed by OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com, and owner of the +OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com. - -:line -(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. - -:line diff --git a/doc/cfdemSolverPisoScalar.txt b/doc/cfdemSolverPisoScalar.txt index f05ca932..fbc4dc58 100644 --- a/doc/cfdemSolverPisoScalar.txt +++ b/doc/cfdemSolverPisoScalar.txt @@ -19,7 +19,10 @@ The heat transfer equation is implemented according to Nield & Bejan (2013), Con -:line -(*) This offering is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM® and OpenCFD® trade marks. OPENFOAM® is a registered trade mark of OpenCFD Limited, a wholly owned subsidiary of the ESI Group. +NOTE: +(*) This offering is not approved or endorsed by OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com, and owner of the +OPENFOAM(R) and OpenCFD(R) trade marks. +OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and +distributor of the OpenFOAM software via www.openfoam.com. -:line From 51d1af906a769af5c9908953a96c97ce4b281980 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 13:43:11 +0200 Subject: [PATCH 08/33] [DOC] fix top links for old html docs format --- doc/IOModel.txt | 4 ++-- doc/IOModel_basicIO.txt | 4 ++-- doc/IOModel_noIO.txt | 4 ++-- doc/IOModel_sophIO.txt | 4 ++-- doc/IOModel_trackIO.txt | 4 ++-- doc/averagingModel.txt | 4 ++-- doc/averagingModel_dense.txt | 4 ++-- doc/averagingModel_dilute.txt | 4 ++-- doc/cfdemSolverIB.txt | 4 ++-- doc/cfdemSolverPiso.txt | 4 ++-- doc/cfdemSolverPisoScalar.txt | 4 ++-- doc/chemistryModel.txt | 4 ++-- doc/chemistryModel_diffusionCoefficients.txt | 4 ++-- doc/chemistryModel_massTransferCoeff.txt | 4 ++-- doc/chemistryModel_species.txt | 4 ++-- doc/clockModel.txt | 4 ++-- doc/clockModel_noClock.txt | 4 ++-- doc/clockModel_standardClock.txt | 4 ++-- doc/dataExchangeModel.txt | 4 ++-- doc/dataExchangeModel_noDataExchange.txt | 4 ++-- doc/dataExchangeModel_oneWayVTK.txt | 4 ++-- doc/dataExchangeModel_twoWayFiles.txt | 4 ++-- doc/dataExchangeModel_twoWayMPI.txt | 4 ++-- doc/dataExchangeModel_twoWayMany2Many.txt | 4 ++-- doc/forceModel.txt | 4 ++-- doc/forceModel_Archimedes.txt | 4 ++-- doc/forceModel_ArchimedesIB.txt | 4 ++-- doc/forceModel_DiFeliceDrag.txt | 4 ++-- doc/forceModel_GidaspowDrag.txt | 4 ++-- doc/forceModel_KochHillDrag.txt | 4 ++-- doc/forceModel_LaEuScalarTemp.txt | 4 ++-- doc/forceModel_MeiLift.txt | 4 ++-- doc/forceModel_SchillerNaumannDrag.txt | 4 ++-- doc/forceModel_ShirgaonkarIB.txt | 4 ++-- doc/forceModel_dSauter.txt | 4 ++-- doc/forceModel_fieldStore.txt | 4 ++-- doc/forceModel_gradPForce.txt | 4 ++-- doc/forceModel_noDrag.txt | 4 ++-- doc/forceModel_particleCellVolume.txt | 4 ++-- doc/forceModel_pdCorrelation.txt | 4 ++-- doc/forceModel_virtualMassForce.txt | 4 ++-- doc/forceModel_viscForce.txt | 4 ++-- doc/forceSubModel.txt | 4 ++-- doc/forceSubModel_ImEx.txt | 4 ++-- doc/forceSubModel_ImExCorr.txt | 4 ++-- doc/githubAccess_public.txt | 5 +++-- doc/liggghtsCommandModel.txt | 4 ++-- doc/liggghtsCommandModel_execute.txt | 4 ++-- doc/liggghtsCommandModel_readLiggghtsData.txt | 4 ++-- doc/liggghtsCommandModel_runLiggghts.txt | 4 ++-- doc/liggghtsCommandModel_writeLiggghts.txt | 4 ++-- doc/locateModel.txt | 4 ++-- doc/locateModel_engineSearch.txt | 4 ++-- doc/locateModel_engineSearchIB.txt | 4 ++-- doc/locateModel_engineSearchMany2Many.txt | 4 ++-- doc/locateModel_standardSearch.txt | 4 ++-- doc/locateModel_turboEngineSearch.txt | 4 ++-- doc/meshMotionModel.txt | 4 ++-- doc/meshMotionModel_noMeshMotion.txt | 4 ++-- doc/momCoupleModel.txt | 4 ++-- doc/momCoupleModel_explicitCouple.txt | 4 ++-- doc/momCoupleModel_implicitCouple.txt | 4 ++-- doc/momCoupleModel_noCouple.txt | 4 ++-- doc/probeModel.txt | 4 ++-- doc/probeModel_noProbe.txt | 4 ++-- doc/regionModel.txt | 4 ++-- doc/regionModel_allRegion.txt | 4 ++-- doc/smoothingModel.txt | 4 ++-- doc/smoothingModel_constDiffSmoothing.txt | 4 ++-- doc/smoothingModel_noSmoothing.txt | 4 ++-- doc/voidFractionModel.txt | 4 ++-- doc/voidFractionModel_GaussVoidFraction.txt | 4 ++-- doc/voidFractionModel_IBVoidFraction.txt | 4 ++-- doc/voidFractionModel_bigParticleVoidFraction.txt | 4 ++-- doc/voidFractionModel_centreVoidFraction.txt | 4 ++-- doc/voidFractionModel_dividedVoidFraction.txt | 4 ++-- 76 files changed, 153 insertions(+), 152 deletions(-) diff --git a/doc/IOModel.txt b/doc/IOModel.txt index 77014da2..a5815f21 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index 98daa37a..8773a202 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index d90d77cf..db5a38dd 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index 09dcd3e6..7e7de66b 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index dff7906e..895c8111 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/averagingModel.txt b/doc/averagingModel.txt index 36c327e7..56b98f97 100644 --- a/doc/averagingModel.txt +++ b/doc/averagingModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/averagingModel_dense.txt b/doc/averagingModel_dense.txt index 52da602b..16065837 100644 --- a/doc/averagingModel_dense.txt +++ b/doc/averagingModel_dense.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/averagingModel_dilute.txt b/doc/averagingModel_dilute.txt index 56640de8..e7250940 100644 --- a/doc/averagingModel_dilute.txt +++ b/doc/averagingModel_dilute.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/cfdemSolverIB.txt b/doc/cfdemSolverIB.txt index 93604faa..4af88842 100644 --- a/doc/cfdemSolverIB.txt +++ b/doc/cfdemSolverIB.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/cfdemSolverPiso.txt b/doc/cfdemSolverPiso.txt index 0ae86d3c..4945c1a4 100644 --- a/doc/cfdemSolverPiso.txt +++ b/doc/cfdemSolverPiso.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/cfdemSolverPisoScalar.txt b/doc/cfdemSolverPisoScalar.txt index fbc4dc58..5498f62d 100644 --- a/doc/cfdemSolverPisoScalar.txt +++ b/doc/cfdemSolverPisoScalar.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index 941d64e9..d0b686d4 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 8a116317..775dd214 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/chemistryModel_massTransferCoeff.txt b/doc/chemistryModel_massTransferCoeff.txt index f0f04ba4..a12bf742 100644 --- a/doc/chemistryModel_massTransferCoeff.txt +++ b/doc/chemistryModel_massTransferCoeff.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index 66f92a9d..8ce3e952 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/clockModel.txt b/doc/clockModel.txt index fa93276a..60c92988 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/clockModel_noClock.txt b/doc/clockModel_noClock.txt index 509c0b65..098bc4df 100644 --- a/doc/clockModel_noClock.txt +++ b/doc/clockModel_noClock.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/clockModel_standardClock.txt b/doc/clockModel_standardClock.txt index bae9832a..7e60d110 100644 --- a/doc/clockModel_standardClock.txt +++ b/doc/clockModel_standardClock.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel.txt b/doc/dataExchangeModel.txt index 42e06384..5d0be12e 100644 --- a/doc/dataExchangeModel.txt +++ b/doc/dataExchangeModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel_noDataExchange.txt b/doc/dataExchangeModel_noDataExchange.txt index ee6db034..78137cf1 100644 --- a/doc/dataExchangeModel_noDataExchange.txt +++ b/doc/dataExchangeModel_noDataExchange.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index 3cf66429..afbc1cb1 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel_twoWayFiles.txt b/doc/dataExchangeModel_twoWayFiles.txt index cd31b167..25f823dc 100644 --- a/doc/dataExchangeModel_twoWayFiles.txt +++ b/doc/dataExchangeModel_twoWayFiles.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index f698b0e0..dc4583ee 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/dataExchangeModel_twoWayMany2Many.txt b/doc/dataExchangeModel_twoWayMany2Many.txt index 31f87e67..10e3f688 100644 --- a/doc/dataExchangeModel_twoWayMany2Many.txt +++ b/doc/dataExchangeModel_twoWayMany2Many.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel.txt b/doc/forceModel.txt index bda922a2..611c9a65 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index 41c18aee..044fb45a 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_ArchimedesIB.txt b/doc/forceModel_ArchimedesIB.txt index 041d737b..bec7428b 100644 --- a/doc/forceModel_ArchimedesIB.txt +++ b/doc/forceModel_ArchimedesIB.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 77e6e4ba..97e547b2 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 452c67f1..84ea1100 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index 0737bb22..1aa2490c 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_LaEuScalarTemp.txt b/doc/forceModel_LaEuScalarTemp.txt index 307693c7..0a2198b9 100644 --- a/doc/forceModel_LaEuScalarTemp.txt +++ b/doc/forceModel_LaEuScalarTemp.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index 205a5978..89e9f43a 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index aaa1c8a8..fe2ff467 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_ShirgaonkarIB.txt b/doc/forceModel_ShirgaonkarIB.txt index 87cae6ce..8ee595cf 100644 --- a/doc/forceModel_ShirgaonkarIB.txt +++ b/doc/forceModel_ShirgaonkarIB.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index 478c8dbd..4dabed46 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index 2e8af443..99ea5851 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index 68a8b30c..5cbffc6b 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index ec43c191..cc50548b 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index 93b1dbfb..c498aae2 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index 34049c96..b81e052e 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index 084371fe..ef24e401 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index 6bcd3cbb..c3b911cf 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceSubModel.txt b/doc/forceSubModel.txt index 8d150a90..fd21a4ae 100644 --- a/doc/forceSubModel.txt +++ b/doc/forceSubModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index e81f55e1..8430ef8d 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index 666ffe11..c6d09121 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/githubAccess_public.txt b/doc/githubAccess_public.txt index d1660464..dc7cc6db 100644 --- a/doc/githubAccess_public.txt +++ b/doc/githubAccess_public.txt @@ -1,11 +1,12 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :link(github,http://github.com) :link(gitHelp,http://help.github.com/linux-set-up-git) :line + githubAccess_public :h3 [Description:] diff --git a/doc/liggghtsCommandModel.txt b/doc/liggghtsCommandModel.txt index 37fbe266..bcf23504 100644 --- a/doc/liggghtsCommandModel.txt +++ b/doc/liggghtsCommandModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 5db5f2af..4edbc3b8 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index 510ab556..857f681f 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/liggghtsCommandModel_runLiggghts.txt b/doc/liggghtsCommandModel_runLiggghts.txt index a1f0ef41..5621c41d 100644 --- a/doc/liggghtsCommandModel_runLiggghts.txt +++ b/doc/liggghtsCommandModel_runLiggghts.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/liggghtsCommandModel_writeLiggghts.txt b/doc/liggghtsCommandModel_writeLiggghts.txt index 7bd7a3d1..0be3c36b 100644 --- a/doc/liggghtsCommandModel_writeLiggghts.txt +++ b/doc/liggghtsCommandModel_writeLiggghts.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel.txt b/doc/locateModel.txt index b18b9e46..604c0722 100644 --- a/doc/locateModel.txt +++ b/doc/locateModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index fce11bff..cd41ad60 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index 08b66a1b..24c5a1a8 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index b171c315..7e2c20d8 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel_standardSearch.txt b/doc/locateModel_standardSearch.txt index 84fb1db8..82a98d68 100644 --- a/doc/locateModel_standardSearch.txt +++ b/doc/locateModel_standardSearch.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/locateModel_turboEngineSearch.txt b/doc/locateModel_turboEngineSearch.txt index 6e79ead4..99de5549 100644 --- a/doc/locateModel_turboEngineSearch.txt +++ b/doc/locateModel_turboEngineSearch.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/meshMotionModel.txt b/doc/meshMotionModel.txt index 60410ed0..22053fbb 100644 --- a/doc/meshMotionModel.txt +++ b/doc/meshMotionModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/meshMotionModel_noMeshMotion.txt b/doc/meshMotionModel_noMeshMotion.txt index ca47a35b..b6a26a2c 100644 --- a/doc/meshMotionModel_noMeshMotion.txt +++ b/doc/meshMotionModel_noMeshMotion.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/momCoupleModel.txt b/doc/momCoupleModel.txt index 0a7dbf2f..79b272e5 100644 --- a/doc/momCoupleModel.txt +++ b/doc/momCoupleModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/momCoupleModel_explicitCouple.txt b/doc/momCoupleModel_explicitCouple.txt index bdcb4655..23fd089f 100644 --- a/doc/momCoupleModel_explicitCouple.txt +++ b/doc/momCoupleModel_explicitCouple.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index 08433eec..9a8396e5 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/momCoupleModel_noCouple.txt b/doc/momCoupleModel_noCouple.txt index 6972d30c..cacb4ef1 100644 --- a/doc/momCoupleModel_noCouple.txt +++ b/doc/momCoupleModel_noCouple.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/probeModel.txt b/doc/probeModel.txt index 64826ed1..152b2c05 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index b36c75e0..34c68542 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/regionModel.txt b/doc/regionModel.txt index e83d0132..475353b1 100644 --- a/doc/regionModel.txt +++ b/doc/regionModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/regionModel_allRegion.txt b/doc/regionModel_allRegion.txt index c0e37441..210b1aa6 100644 --- a/doc/regionModel_allRegion.txt +++ b/doc/regionModel_allRegion.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index 903a4771..c78f26c3 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index 54f75cfd..d59b3738 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/smoothingModel_noSmoothing.txt b/doc/smoothingModel_noSmoothing.txt index 827748e2..6d4b4ee0 100644 --- a/doc/smoothingModel_noSmoothing.txt +++ b/doc/smoothingModel_noSmoothing.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel.txt b/doc/voidFractionModel.txt index c4310692..6e627f11 100644 --- a/doc/voidFractionModel.txt +++ b/doc/voidFractionModel.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index fcb1f7e0..d360c509 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index 0e97a396..ecc3c90d 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 15cecec9..677fc16e 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index e96a0754..cd69a579 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index ae215590..40a5e7d4 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -1,7 +1,7 @@ -"CFDEMproject WWW Site"_lws - "CFDEM Commands"_lc :c +"CFDEMproject Website"_lws - "Main Page"_main :c :link(lws,http://www.cfdem.com) -:link(lc,CFDEMcoupling_Manual.html#comm) +:link(main,CFDEMcoupling_Manual.html) :line From 2def3b2f97bba58bfb522e4ce0076e14ba2b9829 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 13:50:07 +0200 Subject: [PATCH 09/33] [DOC] fix up model names --- doc/IOModel_basicIO.txt | 2 +- doc/IOModel_noIO.txt | 2 +- doc/IOModel_sophIO.txt | 2 +- doc/IOModel_trackIO.txt | 2 +- doc/averagingModel_dense.txt | 2 +- doc/averagingModel_dilute.txt | 2 +- doc/chemistryModel_diffusionCoefficients.txt | 2 +- doc/chemistryModel_massTransferCoeff.txt | 2 +- doc/chemistryModel_species.txt | 2 +- doc/clockModel_noClock.txt | 5 +++-- doc/clockModel_standardClock.txt | 2 +- doc/dataExchangeModel_noDataExchange.txt | 2 +- doc/dataExchangeModel_oneWayVTK.txt | 2 +- doc/dataExchangeModel_twoWayFiles.txt | 2 +- doc/dataExchangeModel_twoWayMPI.txt | 2 +- doc/dataExchangeModel_twoWayMany2Many.txt | 2 +- doc/forceModel_Archimedes.txt | 2 +- doc/forceModel_ArchimedesIB.txt | 2 +- doc/forceModel_DiFeliceDrag.txt | 2 +- doc/forceModel_GidaspowDrag.txt | 2 +- doc/forceModel_KochHillDrag.txt | 2 +- doc/forceModel_LaEuScalarTemp.txt | 2 +- doc/forceModel_MeiLift.txt | 2 +- doc/forceModel_SchillerNaumannDrag.txt | 2 +- doc/forceModel_ShirgaonkarIB.txt | 2 +- doc/forceModel_dSauter.txt | 2 +- doc/forceModel_fieldStore.txt | 2 +- doc/forceModel_gradPForce.txt | 2 +- doc/forceModel_noDrag.txt | 2 +- doc/forceModel_particleCellVolume.txt | 2 +- doc/forceModel_pdCorrelation.txt | 2 +- doc/forceModel_virtualMassForce.txt | 2 +- doc/forceModel_viscForce.txt | 2 +- doc/forceSubModel_ImEx.txt | 2 +- doc/forceSubModel_ImExCorr.txt | 2 +- doc/liggghtsCommandModel_execute.txt | 2 +- doc/liggghtsCommandModel_readLiggghtsData.txt | 2 +- doc/liggghtsCommandModel_runLiggghts.txt | 2 +- doc/liggghtsCommandModel_writeLiggghts.txt | 2 +- doc/locateModel_engineSearch.txt | 2 +- doc/locateModel_engineSearchIB.txt | 2 +- doc/locateModel_engineSearchMany2Many.txt | 2 +- doc/locateModel_standardSearch.txt | 2 +- doc/locateModel_turboEngineSearch.txt | 2 +- doc/meshMotionModel_noMeshMotion.txt | 2 +- doc/momCoupleModel_explicitCouple.txt | 2 +- doc/momCoupleModel_implicitCouple.txt | 2 +- doc/momCoupleModel_noCouple.txt | 5 +++-- doc/probeModel_noProbe.txt | 2 +- doc/regionModel_allRegion.txt | 2 +- doc/smoothingModel_constDiffSmoothing.txt | 2 +- doc/smoothingModel_noSmoothing.txt | 4 ++-- doc/voidFractionModel_GaussVoidFraction.txt | 2 +- doc/voidFractionModel_IBVoidFraction.txt | 2 +- doc/voidFractionModel_bigParticleVoidFraction.txt | 2 +- doc/voidFractionModel_centreVoidFraction.txt | 2 +- doc/voidFractionModel_dividedVoidFraction.txt | 2 +- 57 files changed, 62 insertions(+), 60 deletions(-) diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index 8773a202..2f71d38b 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -5,7 +5,7 @@ :line -IOModel_basicIO command :h3 +IOModel basicIO command :h3 [Syntax:] diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index db5a38dd..a19bc274 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -5,7 +5,7 @@ :line -IOModel_noIO command :h3 +IOModel off command :h3 [Syntax:] diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index 7e7de66b..49b718d9 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -5,7 +5,7 @@ :line -IOModel_sophIO command :h3 +IOModel sophIO command :h3 [Syntax:] diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index 895c8111..474ac414 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -5,7 +5,7 @@ :line -IOModel_trackIO command :h3 +IOModel trackIO command :h3 [Syntax:] diff --git a/doc/averagingModel_dense.txt b/doc/averagingModel_dense.txt index 16065837..4bde4180 100644 --- a/doc/averagingModel_dense.txt +++ b/doc/averagingModel_dense.txt @@ -5,7 +5,7 @@ :line -averagingModel_dense command :h3 +averagingModel dense command :h3 [Syntax:] diff --git a/doc/averagingModel_dilute.txt b/doc/averagingModel_dilute.txt index e7250940..0e293967 100644 --- a/doc/averagingModel_dilute.txt +++ b/doc/averagingModel_dilute.txt @@ -5,7 +5,7 @@ :line -averagingModel_dilute command :h3 +averagingModel dilute command :h3 [Syntax:] diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 775dd214..7c107706 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -5,7 +5,7 @@ :line -chemistryModel_diffusionCoefficients command :h3 +chemistryModel diffusionCoefficients command :h3 [Syntax:] diff --git a/doc/chemistryModel_massTransferCoeff.txt b/doc/chemistryModel_massTransferCoeff.txt index a12bf742..cd57a5a5 100644 --- a/doc/chemistryModel_massTransferCoeff.txt +++ b/doc/chemistryModel_massTransferCoeff.txt @@ -5,7 +5,7 @@ :line -chemistryModel_massTransferCoeff command :h3 +chemistryModel massTransferCoeff command :h3 [Syntax:] diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index 8ce3e952..bf58240d 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -5,7 +5,7 @@ :line -chemistryModel_species command :h3 +chemistryModel species command :h3 [Syntax:] diff --git a/doc/clockModel_noClock.txt b/doc/clockModel_noClock.txt index 098bc4df..fb9ab97e 100644 --- a/doc/clockModel_noClock.txt +++ b/doc/clockModel_noClock.txt @@ -5,7 +5,7 @@ :line -clockModel_noClock command :h3 +clockModel off command :h3 [Syntax:] @@ -19,7 +19,8 @@ clockModel off; :pre [Description:] -The "noClock" model is a dummy clockModel model which does not measure/evaluate the run time. +The {off} model is a dummy clockModel model which does not measure/evaluate the +run time. [Restrictions:] none. diff --git a/doc/clockModel_standardClock.txt b/doc/clockModel_standardClock.txt index 7e60d110..a2d0b458 100644 --- a/doc/clockModel_standardClock.txt +++ b/doc/clockModel_standardClock.txt @@ -5,7 +5,7 @@ :line -clockModel_standardClock command :h3 +clockModel standardClock command :h3 [Syntax:] diff --git a/doc/dataExchangeModel_noDataExchange.txt b/doc/dataExchangeModel_noDataExchange.txt index 78137cf1..b4788b1b 100644 --- a/doc/dataExchangeModel_noDataExchange.txt +++ b/doc/dataExchangeModel_noDataExchange.txt @@ -5,7 +5,7 @@ :line -dataExchangeModel_noDataExchange command :h3 +dataExchangeModel noDataExchange command :h3 [Syntax:] diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index afbc1cb1..b1e53308 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -5,7 +5,7 @@ :line -dataExchangeModel_oneWayVTK command :h3 +dataExchangeModel oneWayVTK command :h3 [Syntax:] diff --git a/doc/dataExchangeModel_twoWayFiles.txt b/doc/dataExchangeModel_twoWayFiles.txt index 25f823dc..b343b0ae 100644 --- a/doc/dataExchangeModel_twoWayFiles.txt +++ b/doc/dataExchangeModel_twoWayFiles.txt @@ -5,7 +5,7 @@ :line -dataExchangeModel_twoWayFiles command :h3 +dataExchangeModel twoWayFiles command :h3 [Syntax:] diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index dc4583ee..cc9383f0 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -5,7 +5,7 @@ :line -dataExchangeModel_twoWayMPI command :h3 +dataExchangeModel twoWayMPI command :h3 [Syntax:] diff --git a/doc/dataExchangeModel_twoWayMany2Many.txt b/doc/dataExchangeModel_twoWayMany2Many.txt index 10e3f688..85bacc73 100644 --- a/doc/dataExchangeModel_twoWayMany2Many.txt +++ b/doc/dataExchangeModel_twoWayMany2Many.txt @@ -5,7 +5,7 @@ :line -dataExchangeModel_twoWayMany2Many command :h3 +dataExchangeModel twoWayMany2Many command :h3 [Syntax:] diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index 044fb45a..dce1a5fa 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -5,7 +5,7 @@ :line -forceModel_Archimedes command :h3 +forceModel Archimedes command :h3 [Syntax:] diff --git a/doc/forceModel_ArchimedesIB.txt b/doc/forceModel_ArchimedesIB.txt index bec7428b..8614b74a 100644 --- a/doc/forceModel_ArchimedesIB.txt +++ b/doc/forceModel_ArchimedesIB.txt @@ -5,7 +5,7 @@ :line -forceModel_ArchimedesIB command :h3 +forceModel ArchimedesIB command :h3 [Syntax:] diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 97e547b2..16a916d4 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -5,7 +5,7 @@ :line -forceModel_DiFeliceDrag command :h3 +forceModel DiFeliceDrag command :h3 [Syntax:] diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 84ea1100..1f1422d6 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -5,7 +5,7 @@ :line -forceModel_GidaspowDrag command :h3 +forceModel GidaspowDrag command :h3 [Syntax:] diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index 1aa2490c..c44ee8c6 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -5,7 +5,7 @@ :line -forceModel_KochHillDrag command :h3 +forceModel KochHillDrag command :h3 [Syntax:] diff --git a/doc/forceModel_LaEuScalarTemp.txt b/doc/forceModel_LaEuScalarTemp.txt index 0a2198b9..ff87cbfe 100644 --- a/doc/forceModel_LaEuScalarTemp.txt +++ b/doc/forceModel_LaEuScalarTemp.txt @@ -5,7 +5,7 @@ :line -forceModel_LaEuScalarTemp command :h3 +forceModel LaEuScalarTemp command :h3 [Syntax:] diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index 89e9f43a..3a84ece4 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -5,7 +5,7 @@ :line -forceModel_MeiLift command :h3 +forceModel MeiLift command :h3 [Syntax:] diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index fe2ff467..c7dc1c25 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -5,7 +5,7 @@ :line -forceModel_SchillerNaumannDrag command :h3 +forceModel SchillerNaumannDrag command :h3 [Syntax:] diff --git a/doc/forceModel_ShirgaonkarIB.txt b/doc/forceModel_ShirgaonkarIB.txt index 8ee595cf..0e9a9c8e 100644 --- a/doc/forceModel_ShirgaonkarIB.txt +++ b/doc/forceModel_ShirgaonkarIB.txt @@ -5,7 +5,7 @@ :line -forceModel_ShirgaonkarIB command :h3 +forceModel ShirgaonkarIB command :h3 [Syntax:] diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index 4dabed46..2fa23889 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -5,7 +5,7 @@ :line -forceModel_dSauter command :h3 +forceModel dSauter command :h3 [Syntax:] diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index 99ea5851..4911d3a7 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -5,7 +5,7 @@ :line -forceModel_fieldStore command :h3 +forceModel fieldStore command :h3 [Syntax:] diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index 5cbffc6b..adc7254e 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -5,7 +5,7 @@ :line -forceModel_gradPForce command :h3 +forceModel gradPForce command :h3 [Syntax:] diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index cc50548b..520f0498 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -5,7 +5,7 @@ :line -forceModel_noDrag command :h3 +forceModel noDrag command :h3 [Syntax:] diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index c498aae2..bf2847b6 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -5,7 +5,7 @@ :line -forceModel_particleCellVolume command :h3 +forceModel particleCellVolume command :h3 [Syntax:] diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index b81e052e..ccc29daf 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -5,7 +5,7 @@ :line -forceModel_pdCorrelation :h3 +forceModel pdCorrelation :h3 [Syntax:] diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index ef24e401..6992feeb 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -5,7 +5,7 @@ :line -forceModel_virtualMassForce command :h3 +forceModel virtualMassForce command :h3 [Syntax:] diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index c3b911cf..7fb313d9 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -5,7 +5,7 @@ :line -forceModel_viscForce command :h3 +forceModel viscForce command :h3 [Syntax:] diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index 8430ef8d..cba23ba1 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -5,7 +5,7 @@ :line -forceSubModel_ImEx command :h3 +forceSubModel ImEx command :h3 [Syntax:] diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index c6d09121..429c5620 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -5,7 +5,7 @@ :line -forceSubModel_ImExCorr command :h3 +forceSubModel ImExCorr command :h3 [Syntax:] diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 4edbc3b8..93e94124 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -5,7 +5,7 @@ :line -liggghtsCommandModel_execute command :h3 +liggghtsCommandModel execute command :h3 [Syntax:] diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index 857f681f..0f6caf17 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -5,7 +5,7 @@ :line -liggghtsCommandModel_readLiggghtsData command :h3 +liggghtsCommandModel readLiggghtsData command :h3 [Syntax:] diff --git a/doc/liggghtsCommandModel_runLiggghts.txt b/doc/liggghtsCommandModel_runLiggghts.txt index 5621c41d..bf3f6e54 100644 --- a/doc/liggghtsCommandModel_runLiggghts.txt +++ b/doc/liggghtsCommandModel_runLiggghts.txt @@ -5,7 +5,7 @@ :line -liggghtsCommandModel_runLiggghts command :h3 +liggghtsCommandModel runLiggghts command :h3 [Syntax:] diff --git a/doc/liggghtsCommandModel_writeLiggghts.txt b/doc/liggghtsCommandModel_writeLiggghts.txt index 0be3c36b..d1f0b24b 100644 --- a/doc/liggghtsCommandModel_writeLiggghts.txt +++ b/doc/liggghtsCommandModel_writeLiggghts.txt @@ -5,7 +5,7 @@ :line -liggghtsCommandModel_writeLiggghts command :h3 +liggghtsCommandModel writeLiggghts command :h3 [Syntax:] diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index cd41ad60..376ea8e3 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -5,7 +5,7 @@ :line -locateModel_engineSearch command :h3 +locateModel engine command :h3 [Syntax:] diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index 24c5a1a8..6d29f768 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -5,7 +5,7 @@ :line -locateModel_engineSearchIB command :h3 +locateModel engineIB command :h3 [Syntax:] diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index 7e2c20d8..e8948ce8 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -5,7 +5,7 @@ :line -locateModel_engineSearchMany2Many command :h3 +locateModel engineSearchMany2Many command :h3 [Syntax:] diff --git a/doc/locateModel_standardSearch.txt b/doc/locateModel_standardSearch.txt index 82a98d68..7804e941 100644 --- a/doc/locateModel_standardSearch.txt +++ b/doc/locateModel_standardSearch.txt @@ -5,7 +5,7 @@ :line -locateModel_standardSearch command :h3 +locateModel standard command :h3 [Syntax:] diff --git a/doc/locateModel_turboEngineSearch.txt b/doc/locateModel_turboEngineSearch.txt index 99de5549..ae030485 100644 --- a/doc/locateModel_turboEngineSearch.txt +++ b/doc/locateModel_turboEngineSearch.txt @@ -5,7 +5,7 @@ :line -locateModel_turboEngineSearch command :h3 +locateModel turboEngine command :h3 [Syntax:] diff --git a/doc/meshMotionModel_noMeshMotion.txt b/doc/meshMotionModel_noMeshMotion.txt index b6a26a2c..3617a72e 100644 --- a/doc/meshMotionModel_noMeshMotion.txt +++ b/doc/meshMotionModel_noMeshMotion.txt @@ -5,7 +5,7 @@ :line -meshMotionModel_noMeshMotion command :h3 +meshMotionModel noMeshMotion command :h3 [Syntax:] diff --git a/doc/momCoupleModel_explicitCouple.txt b/doc/momCoupleModel_explicitCouple.txt index 23fd089f..e6c87679 100644 --- a/doc/momCoupleModel_explicitCouple.txt +++ b/doc/momCoupleModel_explicitCouple.txt @@ -5,7 +5,7 @@ :line -momCoupleModel_explicitCouple command :h3 +momCoupleModel explicitCouple command :h3 [Syntax:] diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index 9a8396e5..21775bad 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -5,7 +5,7 @@ :line -momCoupleModel_implicitCouple command :h3 +momCoupleModel implicitCouple command :h3 [Syntax:] diff --git a/doc/momCoupleModel_noCouple.txt b/doc/momCoupleModel_noCouple.txt index cacb4ef1..25ce6fbf 100644 --- a/doc/momCoupleModel_noCouple.txt +++ b/doc/momCoupleModel_noCouple.txt @@ -5,7 +5,7 @@ :line -momCoupleModel_noCouple command :h3 +momCoupleModel off command :h3 [Syntax:] @@ -26,7 +26,8 @@ momCoupleModels [Description:] -The noCouple-model is a dummy momCoupleModel model providing a no momentum source term for the CFD solver. +The {off} model is a dummy momCoupleModel model providing a no momentum source +term for the CFD solver. [Restrictions:] diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index 34c68542..3f40ea29 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -5,7 +5,7 @@ :line -probeModel_noProbe command :h3 +probeModel off command :h3 [Syntax:] diff --git a/doc/regionModel_allRegion.txt b/doc/regionModel_allRegion.txt index 210b1aa6..b0c266d3 100644 --- a/doc/regionModel_allRegion.txt +++ b/doc/regionModel_allRegion.txt @@ -5,7 +5,7 @@ :line -regionModel_allRegion command :h3 +regionModel allRegion command :h3 [Syntax:] diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index d59b3738..00adfc82 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -5,7 +5,7 @@ :line -smoothingModel_constDiffSmoothing command :h3 +smoothingModel constDiffSmoothing command :h3 [Syntax:] diff --git a/doc/smoothingModel_noSmoothing.txt b/doc/smoothingModel_noSmoothing.txt index 6d4b4ee0..444e5df5 100644 --- a/doc/smoothingModel_noSmoothing.txt +++ b/doc/smoothingModel_noSmoothing.txt @@ -5,7 +5,7 @@ :line -smoothingModel_noSmoothing command :h3 +smoothingModel off command :h3 [Syntax:] @@ -19,7 +19,7 @@ smoothingModel off; :pre [Description:] -The "noSmoothing" model is a dummy smoothingModel model which does no smoothing. +The {off} model is a dummy smoothingModel model which performs no smoothing. [Restrictions:] none. diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index d360c509..01bc0963 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -5,7 +5,7 @@ :line -voidfractionModel_GaussVoidFraction command :h3 +voidfractionModel Gauss command :h3 [Syntax:] diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index ecc3c90d..9d254da1 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -5,7 +5,7 @@ :line -voidfractionModel_IBVoidFraction command :h3 +voidfractionModel IB command :h3 [Syntax:] diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 677fc16e..63c53f9e 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -5,7 +5,7 @@ :line -voidfractionModel_bigParticleVoidFraction command :h3 +voidfractionModel bigParticle command :h3 [Syntax:] diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index cd69a579..7fd19116 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -5,7 +5,7 @@ :line -voidfractionModel_centreVoidFraction command :h3 +voidfractionModel centre command :h3 [Syntax:] diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index 40a5e7d4..1487c81d 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -5,7 +5,7 @@ :line -voidfractionModel_dividedVoidFraction command :h3 +voidfractionModel divided command :h3 [Syntax:] From 26d30e122d10ecf19d551b5d89427c594bddc21d Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:08:26 +0200 Subject: [PATCH 10/33] [DOC] add cross-linking --- doc/IOModel.txt | 7 +++++-- doc/IOModel_basicIO.txt | 3 ++- doc/IOModel_noIO.txt | 3 ++- doc/IOModel_sophIO.txt | 5 +++-- doc/IOModel_trackIO.txt | 5 +++-- doc/averagingModel.txt | 3 ++- doc/averagingModel_dense.txt | 3 ++- doc/averagingModel_dilute.txt | 3 ++- doc/chemistryModel.txt | 7 +++++-- doc/chemistryModel_diffusionCoefficients.txt | 6 ++++-- doc/chemistryModel_massTransferCoeff.txt | 8 +++++--- doc/chemistryModel_species.txt | 3 ++- doc/clockModel.txt | 3 ++- doc/clockModel_noClock.txt | 3 ++- doc/clockModel_standardClock.txt | 3 ++- doc/dataExchangeModel.txt | 8 ++++++-- doc/dataExchangeModel_noDataExchange.txt | 3 ++- doc/dataExchangeModel_oneWayVTK.txt | 3 ++- doc/dataExchangeModel_twoWayFiles.txt | 3 ++- doc/dataExchangeModel_twoWayMPI.txt | 3 ++- doc/dataExchangeModel_twoWayMany2Many.txt | 6 ++++-- doc/forceModel.txt | 7 +++++-- doc/forceModel_Archimedes.txt | 3 ++- doc/forceModel_ArchimedesIB.txt | 3 ++- doc/forceModel_DiFeliceDrag.txt | 3 ++- doc/forceModel_GidaspowDrag.txt | 3 ++- doc/forceModel_KochHillDrag.txt | 3 ++- doc/forceModel_LaEuScalarTemp.txt | 3 ++- doc/forceModel_MeiLift.txt | 3 ++- doc/forceModel_SchillerNaumannDrag.txt | 3 ++- doc/forceModel_ShirgaonkarIB.txt | 3 ++- doc/forceModel_dSauter.txt | 3 ++- doc/forceModel_fieldStore.txt | 3 ++- doc/forceModel_gradPForce.txt | 3 ++- doc/forceModel_noDrag.txt | 3 ++- doc/forceModel_particleCellVolume.txt | 3 ++- doc/forceModel_pdCorrelation.txt | 6 ++++-- doc/forceModel_virtualMassForce.txt | 3 ++- doc/forceModel_viscForce.txt | 3 ++- doc/forceSubModel_ImEx.txt | 3 ++- doc/forceSubModel_ImExCorr.txt | 3 ++- doc/liggghtsCommandModel.txt | 3 ++- doc/liggghtsCommandModel_execute.txt | 3 ++- doc/liggghtsCommandModel_readLiggghtsData.txt | 3 ++- doc/liggghtsCommandModel_runLiggghts.txt | 3 ++- doc/liggghtsCommandModel_writeLiggghts.txt | 3 ++- doc/locateModel.txt | 3 ++- doc/locateModel_engineSearch.txt | 3 ++- doc/locateModel_engineSearchIB.txt | 3 ++- doc/locateModel_engineSearchMany2Many.txt | 3 ++- doc/locateModel_standardSearch.txt | 3 ++- doc/locateModel_turboEngineSearch.txt | 3 ++- doc/meshMotionModel.txt | 3 ++- doc/meshMotionModel_noMeshMotion.txt | 3 ++- doc/momCoupleModel.txt | 3 ++- doc/momCoupleModel_explicitCouple.txt | 3 ++- doc/momCoupleModel_implicitCouple.txt | 3 ++- doc/momCoupleModel_noCouple.txt | 3 ++- doc/probeModel.txt | 5 +++++ doc/probeModel_noProbe.txt | 3 ++- doc/regionModel.txt | 7 +++++-- doc/regionModel_allRegion.txt | 5 ++++- doc/smoothingModel.txt | 3 ++- doc/smoothingModel_constDiffSmoothing.txt | 3 ++- doc/smoothingModel_noSmoothing.txt | 3 ++- doc/voidFractionModel.txt | 3 ++- doc/voidFractionModel_GaussVoidFraction.txt | 3 ++- doc/voidFractionModel_IBVoidFraction.txt | 3 ++- doc/voidFractionModel_bigParticleVoidFraction.txt | 3 ++- doc/voidFractionModel_centreVoidFraction.txt | 3 ++- doc/voidFractionModel_dividedVoidFraction.txt | 3 ++- 71 files changed, 174 insertions(+), 82 deletions(-) diff --git a/doc/IOModel.txt b/doc/IOModel.txt index a5815f21..9e9ea7ce 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -9,7 +9,8 @@ IOModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. IOModel "model"; :pre @@ -31,6 +32,8 @@ none. [Related commands:] -Note: This examples list may be incomplete - please look for other models (IOModel_XY) in this documentation. +"IOModel basicIO"_IOModel_basicIO.html, "IOModel off"_IOModel_noIO.html, +"IOModel sophIO"_IOModel_sophIO.html, "IOModel trackIO"_IOModel_trackIO.html + [Default:] none. diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index 2f71d38b..039f15c0 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -9,7 +9,8 @@ IOModel basicIO command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. IOModel "basicIO"; :pre diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index a19bc274..9efd00b8 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -9,7 +9,8 @@ IOModel off command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. IOModel "off"; :pre diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index 49b718d9..fc5e5bec 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -9,7 +9,8 @@ IOModel sophIO command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. IOModel "sophIO"; :pre @@ -25,5 +26,5 @@ The sophIO-model is based on basicIO model and additionally writes voidfraction, [Related commands:] -"IOModel"_IOModel.html +"IOModel"_IOModel.html, "IOModel basicIO"_IOModel_basicIO.html diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index 474ac414..946d3f34 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -9,7 +9,8 @@ IOModel trackIO command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. IOModel "trackIO"; :pre @@ -25,5 +26,5 @@ The trackIO-model is based on sophIO model and additionally writes fields necess [Related commands:] -"IOModel"_IOModel.html +"IOModel"_IOModel.html, "IOModel sophIO"_IOModel_sophIO.html diff --git a/doc/averagingModel.txt b/doc/averagingModel.txt index 56b98f97..5e9f6ddf 100644 --- a/doc/averagingModel.txt +++ b/doc/averagingModel.txt @@ -9,7 +9,8 @@ averagingModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. averagingModel model; :pre diff --git a/doc/averagingModel_dense.txt b/doc/averagingModel_dense.txt index 4bde4180..5dcd41f8 100644 --- a/doc/averagingModel_dense.txt +++ b/doc/averagingModel_dense.txt @@ -9,7 +9,8 @@ averagingModel dense command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. averagingModel dense; :pre diff --git a/doc/averagingModel_dilute.txt b/doc/averagingModel_dilute.txt index 0e293967..54dab770 100644 --- a/doc/averagingModel_dilute.txt +++ b/doc/averagingModel_dilute.txt @@ -9,7 +9,8 @@ averagingModel dilute command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. averagingModel dilute; :pre diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index d0b686d4..1f535a94 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -9,7 +9,8 @@ chemistryModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. chemistryModels ( @@ -38,6 +39,8 @@ None. [Related commands:] -"species"_chemistryModel_species.html, "diffusionCoefficient"_chemistryModel_diffusionCoefficients.html, "massTransferCoeff"_chemistryModel_massTransferCoeff.html +"diffusionCoefficient"_chemistryModel_diffusionCoefficients.html, +"massTransferCoeff"_chemistryModel_massTransferCoeff.html, +"species"_chemistryModel_species.html [Default:] none. diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 7c107706..0fca99a9 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -9,7 +9,8 @@ chemistryModel diffusionCoefficients command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. chemistryModels ( @@ -52,5 +53,6 @@ Species model needs to be active. [Related commands:] -"chemistryModel"_chemistryModel.html +"chemistryModel"_chemistryModel.html, +"chemistryModel species"_chemistryModel_species.html diff --git a/doc/chemistryModel_massTransferCoeff.txt b/doc/chemistryModel_massTransferCoeff.txt index cd57a5a5..92c118c6 100644 --- a/doc/chemistryModel_massTransferCoeff.txt +++ b/doc/chemistryModel_massTransferCoeff.txt @@ -9,7 +9,8 @@ chemistryModel massTransferCoeff command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. chemistryModels ( @@ -40,9 +41,10 @@ The chemistry model performs the calculation of chemical reactional effects acti [Restrictions:] -Species model needs to be active. +The "species"_chemistryModel_species.html model needs to be active. [Related commands:] -"chemistryModel"_chemistryModel.html +"chemistryModel"_chemistryModel.html, +"chemistryModel species"_chemistryModel_species.html diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index bf58240d..2c25111a 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -9,7 +9,8 @@ chemistryModel species command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. chemistryModels ( diff --git a/doc/clockModel.txt b/doc/clockModel.txt index 60c92988..642a2c98 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -9,7 +9,8 @@ clockModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. clockModel model; :pre diff --git a/doc/clockModel_noClock.txt b/doc/clockModel_noClock.txt index fb9ab97e..97088e16 100644 --- a/doc/clockModel_noClock.txt +++ b/doc/clockModel_noClock.txt @@ -9,7 +9,8 @@ clockModel off command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. clockModel off; :pre diff --git a/doc/clockModel_standardClock.txt b/doc/clockModel_standardClock.txt index a2d0b458..2f483248 100644 --- a/doc/clockModel_standardClock.txt +++ b/doc/clockModel_standardClock.txt @@ -9,7 +9,8 @@ clockModel standardClock command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. clockModel standardClock; :pre diff --git a/doc/dataExchangeModel.txt b/doc/dataExchangeModel.txt index 5d0be12e..59d13adb 100644 --- a/doc/dataExchangeModel.txt +++ b/doc/dataExchangeModel.txt @@ -9,7 +9,8 @@ dataExchangeModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel model; :pre @@ -32,6 +33,9 @@ None. [Related commands:] -"noDataExchange"_dataExchangeModel_noDataExchange.html, "oneWayVTK"_dataExchangeModel_oneWayVTK.html, "twoWayFiles"_dataExchangeModel_twoWayFiles.html, "twoWayMPI"_dataExchangeModel_twoWayMPI.html +"noDataExchange"_dataExchangeModel_noDataExchange.html, +"oneWayVTK"_dataExchangeModel_oneWayVTK.html, +"twoWayFiles"_dataExchangeModel_twoWayFiles.html, +"twoWayMPI"_dataExchangeModel_twoWayMPI.html [Default:] none diff --git a/doc/dataExchangeModel_noDataExchange.txt b/doc/dataExchangeModel_noDataExchange.txt index b4788b1b..0e2a0ac4 100644 --- a/doc/dataExchangeModel_noDataExchange.txt +++ b/doc/dataExchangeModel_noDataExchange.txt @@ -9,7 +9,8 @@ dataExchangeModel noDataExchange command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel noDataExchange; :pre diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index b1e53308..4b75bfc4 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -9,7 +9,8 @@ dataExchangeModel oneWayVTK command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel oneWayVTK; oneWayVTKProps diff --git a/doc/dataExchangeModel_twoWayFiles.txt b/doc/dataExchangeModel_twoWayFiles.txt index b343b0ae..9387e401 100644 --- a/doc/dataExchangeModel_twoWayFiles.txt +++ b/doc/dataExchangeModel_twoWayFiles.txt @@ -9,7 +9,8 @@ dataExchangeModel twoWayFiles command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel twoWayFiles; twoWayFilesProps diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index cc9383f0..9dadc820 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -9,7 +9,8 @@ dataExchangeModel twoWayMPI command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel twoWayMPI; twoWayMPIProps diff --git a/doc/dataExchangeModel_twoWayMany2Many.txt b/doc/dataExchangeModel_twoWayMany2Many.txt index 85bacc73..fd4323b8 100644 --- a/doc/dataExchangeModel_twoWayMany2Many.txt +++ b/doc/dataExchangeModel_twoWayMany2Many.txt @@ -9,7 +9,8 @@ dataExchangeModel twoWayMany2Many command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. dataExchangeModel twoWayMany2Many; twoWayMany2ManyProps @@ -34,7 +35,8 @@ The data exchange model performs the data exchange between the DEM code and the [Restrictions:] -Must be used in combination with the engineSearchMany2Many locate model! +Must be used in combination with the +"engineSearchMany2Many"_locateModel_engineSearchMany2Many.html locate model! [Related commands:] diff --git a/doc/forceModel.txt b/doc/forceModel.txt index 611c9a65..f267c05a 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -9,7 +9,8 @@ forceModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( @@ -38,6 +39,8 @@ None. [Related commands:] -"Archimedes"_forceModel_Archimedes.html, "DiFeliceDrag"_forceModel_DiFeliceDrag.html, "gradPForce"_forceModel_gradPForce.html, "viscForce"_forceModel_viscForce.html,"dSauter"_forceModel_dSauter.html +"Archimedes"_forceModel_Archimedes.html, "DiFeliceDrag"_forceModel_DiFeliceDrag.html, +"gradPForce"_forceModel_gradPForce.html, "viscForce"_forceModel_viscForce.html, +"dSauter"_forceModel_dSauter.html [Default:] none. diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index dce1a5fa..eb9a5a2f 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -9,7 +9,8 @@ forceModel Archimedes command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_ArchimedesIB.txt b/doc/forceModel_ArchimedesIB.txt index 8614b74a..efa194bb 100644 --- a/doc/forceModel_ArchimedesIB.txt +++ b/doc/forceModel_ArchimedesIB.txt @@ -9,7 +9,8 @@ forceModel ArchimedesIB command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 16a916d4..6a7e353d 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -9,7 +9,8 @@ forceModel DiFeliceDrag command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 1f1422d6..0d24035d 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -9,7 +9,8 @@ forceModel GidaspowDrag command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index c44ee8c6..d24b878b 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -9,7 +9,8 @@ forceModel KochHillDrag command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_LaEuScalarTemp.txt b/doc/forceModel_LaEuScalarTemp.txt index ff87cbfe..e4a8c730 100644 --- a/doc/forceModel_LaEuScalarTemp.txt +++ b/doc/forceModel_LaEuScalarTemp.txt @@ -9,7 +9,8 @@ forceModel LaEuScalarTemp command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index 3a84ece4..f423da1e 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -9,7 +9,8 @@ forceModel MeiLift command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index c7dc1c25..1a52456e 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -9,7 +9,8 @@ forceModel SchillerNaumannDrag command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_ShirgaonkarIB.txt b/doc/forceModel_ShirgaonkarIB.txt index 0e9a9c8e..3378babb 100644 --- a/doc/forceModel_ShirgaonkarIB.txt +++ b/doc/forceModel_ShirgaonkarIB.txt @@ -9,7 +9,8 @@ forceModel ShirgaonkarIB command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index 2fa23889..1d7669bd 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -9,7 +9,8 @@ forceModel dSauter command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index 4911d3a7..d9ada63a 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -9,7 +9,8 @@ forceModel fieldStore command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index adc7254e..7c38dccf 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -9,7 +9,8 @@ forceModel gradPForce command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index 520f0498..dde3e521 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -9,7 +9,8 @@ forceModel noDrag command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index bf2847b6..e444726b 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -9,7 +9,8 @@ forceModel particleCellVolume command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index ccc29daf..ccd581fa 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -9,7 +9,8 @@ forceModel pdCorrelation :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( @@ -50,4 +51,5 @@ none. [Related commands:] -"forceModel"_forceModel.html \ No newline at end of file +"forceModel"_forceModel.html + diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index 6992feeb..8de1f198 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -9,7 +9,8 @@ forceModel virtualMassForce command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index 7fb313d9..e0b26ded 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -9,7 +9,8 @@ forceModel viscForce command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels ( diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index cba23ba1..ae28a469 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -9,7 +9,8 @@ forceSubModel ImEx command :h3 [Syntax:] -Defined in couplingProperties sub-dictionary of the force model in use. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +sub-dictionary of the force model in use. forceSubModels ( diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index 429c5620..9418960a 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -9,7 +9,8 @@ forceSubModel ImExCorr command :h3 [Syntax:] -Defined in couplingProperties sub-dictionary of the force model in use. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +sub-dictionary of the force model in use. forceSubModels ( diff --git a/doc/liggghtsCommandModel.txt b/doc/liggghtsCommandModel.txt index bcf23504..15dbe72b 100644 --- a/doc/liggghtsCommandModel.txt +++ b/doc/liggghtsCommandModel.txt @@ -9,7 +9,8 @@ liggghtsCommandModel command :h3 [Syntax:] -Defined in liggghtsCommmands dictionary. +Defined in "liggghtsCommmands"_CFDEMcoupling_dicts.html#liggghtsCommands +dictionary. liggghtsCommandModels ( diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 93e94124..9e06f0a6 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -9,7 +9,8 @@ liggghtsCommandModel execute command :h3 [Syntax:] -Defined in liggghtsCommmands dictionary. +Defined in "liggghtsCommmands"_CFDEMcoupling_dicts.html#liggghtsCommands +dictionary. liggghtsCommandModels ( diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index 0f6caf17..33ab9300 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -9,7 +9,8 @@ liggghtsCommandModel readLiggghtsData command :h3 [Syntax:] -Defined in liggghtsCommmands dictionary. +Defined in "liggghtsCommmands"_CFDEMcoupling_dicts.html#liggghtsCommands +dictionary. liggghtsCommandModels ( diff --git a/doc/liggghtsCommandModel_runLiggghts.txt b/doc/liggghtsCommandModel_runLiggghts.txt index bf3f6e54..1b438d9e 100644 --- a/doc/liggghtsCommandModel_runLiggghts.txt +++ b/doc/liggghtsCommandModel_runLiggghts.txt @@ -9,7 +9,8 @@ liggghtsCommandModel runLiggghts command :h3 [Syntax:] -Defined in liggghtsCommmands dictionary. +Defined in "liggghtsCommmands"_CFDEMcoupling_dicts.html#liggghtsCommands +dictionary. liggghtsCommandModels ( diff --git a/doc/liggghtsCommandModel_writeLiggghts.txt b/doc/liggghtsCommandModel_writeLiggghts.txt index d1f0b24b..84ec10dc 100644 --- a/doc/liggghtsCommandModel_writeLiggghts.txt +++ b/doc/liggghtsCommandModel_writeLiggghts.txt @@ -9,7 +9,8 @@ liggghtsCommandModel writeLiggghts command :h3 [Syntax:] -Defined in liggghtsCommmands dictionary. +Defined in "liggghtsCommmands"_CFDEMcoupling_dicts.html#liggghtsCommands +dictionary. liggghtsCommandModels ( diff --git a/doc/locateModel.txt b/doc/locateModel.txt index 604c0722..46d5a1f2 100644 --- a/doc/locateModel.txt +++ b/doc/locateModel.txt @@ -9,7 +9,8 @@ locateModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel model; :pre diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index 376ea8e3..993bf121 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -9,7 +9,8 @@ locateModel engine command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel engine; engineProps diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index 6d29f768..acf540da 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -9,7 +9,8 @@ locateModel engineIB command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel engineIB; engineIBProps diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index e8948ce8..4456656c 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -9,7 +9,8 @@ locateModel engineSearchMany2Many command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel engineSearchMany2Many; engineSearchMany2ManyProps diff --git a/doc/locateModel_standardSearch.txt b/doc/locateModel_standardSearch.txt index 7804e941..72ec5d93 100644 --- a/doc/locateModel_standardSearch.txt +++ b/doc/locateModel_standardSearch.txt @@ -9,7 +9,8 @@ locateModel standard command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel standard; :pre diff --git a/doc/locateModel_turboEngineSearch.txt b/doc/locateModel_turboEngineSearch.txt index ae030485..b7c4fa7f 100644 --- a/doc/locateModel_turboEngineSearch.txt +++ b/doc/locateModel_turboEngineSearch.txt @@ -9,7 +9,8 @@ locateModel turboEngine command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. locateModel turboEngine; turboEngineProps diff --git a/doc/meshMotionModel.txt b/doc/meshMotionModel.txt index 22053fbb..b16f8ce9 100644 --- a/doc/meshMotionModel.txt +++ b/doc/meshMotionModel.txt @@ -9,7 +9,8 @@ meshMotionModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. meshMotionModel model; :pre diff --git a/doc/meshMotionModel_noMeshMotion.txt b/doc/meshMotionModel_noMeshMotion.txt index 3617a72e..f339c095 100644 --- a/doc/meshMotionModel_noMeshMotion.txt +++ b/doc/meshMotionModel_noMeshMotion.txt @@ -9,7 +9,8 @@ meshMotionModel noMeshMotion command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. meshMotionModel noMeshMotion; :pre diff --git a/doc/momCoupleModel.txt b/doc/momCoupleModel.txt index 79b272e5..23dd9bcb 100644 --- a/doc/momCoupleModel.txt +++ b/doc/momCoupleModel.txt @@ -9,7 +9,8 @@ momCoupleModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. momCoupleModels ( diff --git a/doc/momCoupleModel_explicitCouple.txt b/doc/momCoupleModel_explicitCouple.txt index e6c87679..05491988 100644 --- a/doc/momCoupleModel_explicitCouple.txt +++ b/doc/momCoupleModel_explicitCouple.txt @@ -9,7 +9,8 @@ momCoupleModel explicitCouple command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. momCoupleModels ( diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index 21775bad..67751937 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -9,7 +9,8 @@ momCoupleModel implicitCouple command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. momCoupleModels ( diff --git a/doc/momCoupleModel_noCouple.txt b/doc/momCoupleModel_noCouple.txt index 25ce6fbf..22bcfcdd 100644 --- a/doc/momCoupleModel_noCouple.txt +++ b/doc/momCoupleModel_noCouple.txt @@ -9,7 +9,8 @@ momCoupleModel off command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. momCoupleModels ( diff --git a/doc/probeModel.txt b/doc/probeModel.txt index 152b2c05..02a29b4b 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -35,4 +35,9 @@ The probeModel feature allows to implement various probing features in CFDEM. Cu None. +[Related commands:] + +"probeModel off"_probeModel_noProbe.html, +"probeModel particleProbe"_probeModel_particleProbe.html + [Default:] none. diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index 3f40ea29..f77f66df 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -9,7 +9,8 @@ probeModel off command :h3 [Syntax:] -To be activated via couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. forceModels \{ diff --git a/doc/regionModel.txt b/doc/regionModel.txt index 475353b1..88787cab 100644 --- a/doc/regionModel.txt +++ b/doc/regionModel.txt @@ -7,9 +7,12 @@ regionModel command :h3 -[Syntax:] +NOTE: In the current CFDEMcoupling version, this model is no longer used. -Note: In the current CFDEMcoupling version, this model is no longer used. Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +[Syntax:] regionModel model; :pre diff --git a/doc/regionModel_allRegion.txt b/doc/regionModel_allRegion.txt index b0c266d3..90dd11f5 100644 --- a/doc/regionModel_allRegion.txt +++ b/doc/regionModel_allRegion.txt @@ -9,7 +9,10 @@ regionModel allRegion command :h3 [Syntax:] -Note: In the current CFDEMcoupling version, this model is no longer used. Defined in couplingProperties dictionary. +NOTE: In the current CFDEMcoupling version, this model is no longer used. + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. regionModel allRegion; :pre diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index c78f26c3..dcc6c8fc 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -9,7 +9,8 @@ smoothingModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. smoothingModel model; :pre diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index 00adfc82..e1855973 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -9,7 +9,8 @@ smoothingModel constDiffSmoothing command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. smoothingModel constDiffSmoothing; constDiffSmoothingProps diff --git a/doc/smoothingModel_noSmoothing.txt b/doc/smoothingModel_noSmoothing.txt index 444e5df5..9faa8a23 100644 --- a/doc/smoothingModel_noSmoothing.txt +++ b/doc/smoothingModel_noSmoothing.txt @@ -9,7 +9,8 @@ smoothingModel off command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. smoothingModel off; :pre diff --git a/doc/voidFractionModel.txt b/doc/voidFractionModel.txt index 6e627f11..3e20c564 100644 --- a/doc/voidFractionModel.txt +++ b/doc/voidFractionModel.txt @@ -9,7 +9,8 @@ voidfractionModel command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel model; :pre diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index 01bc0963..48dd029d 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -9,7 +9,8 @@ voidfractionModel Gauss command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel Gauss; GaussProps diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index 9d254da1..c7cbce63 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -9,7 +9,8 @@ voidfractionModel IB command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel IB; IBProps diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 63c53f9e..62927931 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -9,7 +9,8 @@ voidfractionModel bigParticle command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel bigParticle; bigParticleProps diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index 7fd19116..12843df4 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -9,7 +9,8 @@ voidfractionModel centre command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel centre; centreProps diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index 1487c81d..c3903761 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -9,7 +9,8 @@ voidfractionModel divided command :h3 [Syntax:] -Defined in couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. voidfractionModel divided; dividedProps From b56390e3de76d343858f5494cef597c7706637d4 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:17:27 +0200 Subject: [PATCH 11/33] [DOC] fix up typos and formatting of model syntax/example --- doc/IOModel.txt | 4 +-- doc/IOModel_basicIO.txt | 5 ++-- doc/IOModel_noIO.txt | 4 +-- doc/IOModel_sophIO.txt | 4 +-- doc/IOModel_trackIO.txt | 4 +-- doc/chemistryModel_diffusionCoefficients.txt | 22 +++++++------- doc/chemistryModel_massTransferCoeff.txt | 10 +++---- doc/chemistryModel_species.txt | 24 +++++++-------- doc/dataExchangeModel_oneWayVTK.txt | 18 +++++------ doc/dataExchangeModel_twoWayFiles.txt | 10 +++---- doc/dataExchangeModel_twoWayMPI.txt | 2 +- doc/dataExchangeModel_twoWayMany2Many.txt | 2 +- doc/forceModel_Archimedes.txt | 2 +- doc/forceModel_ArchimedesIB.txt | 10 +++---- doc/forceModel_DiFeliceDrag.txt | 6 ++-- doc/forceModel_GidaspowDrag.txt | 16 +++++----- doc/forceModel_KochHillDrag.txt | 16 +++++----- doc/forceModel_LaEuScalarTemp.txt | 30 +++++++++---------- doc/forceModel_MeiLift.txt | 14 ++++----- doc/forceModel_SchillerNaumannDrag.txt | 2 +- doc/forceModel_ShirgaonkarIB.txt | 2 +- doc/forceModel_dSauter.txt | 6 ++-- doc/forceModel_fieldStore.txt | 2 +- doc/forceModel_gradPForce.txt | 10 +++---- doc/forceModel_noDrag.txt | 16 ++++++---- doc/forceModel_particleCellVolume.txt | 2 +- doc/forceModel_pdCorrelation.txt | 2 +- doc/forceModel_virtualMassForce.txt | 2 +- doc/forceModel_viscForce.txt | 4 +-- doc/forceSubModel_ImEx.txt | 6 ++-- doc/forceSubModel_ImExCorr.txt | 5 ++-- doc/liggghtsCommandModel_execute.txt | 16 +++++----- doc/liggghtsCommandModel_readLiggghtsData.txt | 1 - doc/locateModel_engineSearchIB.txt | 4 +-- doc/momCoupleModel_implicitCouple.txt | 10 +++---- doc/probeModel.txt | 18 +++++------ doc/probeModel_noProbe.txt | 7 +---- doc/smoothingModel.txt | 4 +-- doc/smoothingModel_constDiffSmoothing.txt | 12 ++++---- doc/voidFractionModel_GaussVoidFraction.txt | 12 ++++---- doc/voidFractionModel_IBVoidFraction.txt | 8 ++--- ...dFractionModel_bigParticleVoidFraction.txt | 12 ++++---- doc/voidFractionModel_centreVoidFraction.txt | 4 +-- doc/voidFractionModel_dividedVoidFraction.txt | 6 ++-- 44 files changed, 187 insertions(+), 189 deletions(-) diff --git a/doc/IOModel.txt b/doc/IOModel.txt index 9e9ea7ce..216c2f4f 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -12,13 +12,13 @@ IOModel command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -IOModel "model"; :pre +IOModel model; :pre model = name of IO-model to be applied :ul [Examples:] -IOModel "off"; +IOModel off; :pre Note: This examples list might not be complete - please look for other models (IOModel_XY) in this documentation. diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index 039f15c0..26b5e62d 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -12,11 +12,12 @@ IOModel basicIO command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -IOModel "basicIO"; :pre +IOModel basicIO; :pre [Examples:] -IOModel "basicIO"; :pre +IOModel basicIO; +serialOutput; :pre [Description:] diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index 9efd00b8..a3c8a03f 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -12,11 +12,11 @@ IOModel off command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -IOModel "off"; :pre +IOModel off; :pre [Examples:] -IOModel "off"; :pre +IOModel off; :pre [Description:] diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index fc5e5bec..68f55711 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -12,11 +12,11 @@ IOModel sophIO command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -IOModel "sophIO"; :pre +IOModel sophIO; :pre [Examples:] -IOModel "sophIO"; :pre +IOModel sophIO; :pre [Description:] diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index 946d3f34..0a173a66 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -12,11 +12,11 @@ IOModel trackIO command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -IOModel "trackIO"; :pre +IOModel trackIO; :pre [Examples:] -IOModel "trackIO"; :pre +IOModel trackIO; :pre [Description:] diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 0fca99a9..3c665bb8 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -18,10 +18,10 @@ chemistryModels ); diffusionCoefficientsProps \{ - verbose switch1; - ChemistryFile "$casePath/CFD/constant/foam.inp"; - diffusantGasNames ( speciesNames ); -\}; :pre + verbose switch1; + ChemistryFile "$casePath/CFD/constant/foam.inp"; + diffusantGasNames ( speciesNames ); +\} :pre {switch1} = (optional, normally off) flag to give information :l {ChemistryFile} = path to file, where the reacting species are listed :ulb,l @@ -30,17 +30,17 @@ diffusionCoefficientsProps [Examples:] -chemistryModels +chemistryModels ( diffusionCoefficients ); -speciesProps +diffusionCoefficientsProps \{ - verbose false; - ChemistryFile "$casePath/CFD/constant/foam.inp"; - diffusantGasNames ( CO - H2 - ); + verbose false; + ChemistryFile "$casePath/CFD/constant/foam.inp"; + diffusantGasNames ( CO + H2 + ); \} :pre [Description:] diff --git a/doc/chemistryModel_massTransferCoeff.txt b/doc/chemistryModel_massTransferCoeff.txt index 92c118c6..96f1c54b 100644 --- a/doc/chemistryModel_massTransferCoeff.txt +++ b/doc/chemistryModel_massTransferCoeff.txt @@ -16,23 +16,23 @@ chemistryModels ( massTransferCoeff ); -diffusionCoefficientsProps +massTransferCoeffProps \{ - verbose switch1; -\}; :pre + verbose switch1; +\} :pre {switch1} = (optional, normally off) flag to give information :l :ule [Examples:] -chemistryModels +chemistryModels ( massTransferCoeff ); massTransferCoeffProps \{ - verbose false; + verbose false; \} :pre [Description:] diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index 2c25111a..9c48ca0e 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -18,15 +18,15 @@ chemistryModels ); speciesProps \{ - ChemistryFile "$casePath/CFD/constant/foam.inp"; - verbose switch1; - tempFieldName "T"; - densityFieldName "rho" - voidfractionFieldName "voidfraction" - totalMoleFieldName "molarConc" - partTempName "partTemp" - partRhoName "partRho" -\}; :pre + ChemistryFile "$casePath/CFD/constant/foam.inp"; + tempFieldName "T"; + densityFieldName "rho"; + voidfractionFieldName "voidfraction"; + totalMoleFieldName "molarConc"; + partTempName "partTemp"; + partRhoName "partRho"; + verbose switch1; +\} :pre {ChemistryFile} = path to file, where the reacting species are listed :ulb,l {T} = name of the finite volume temperature field, it is already added in default and doesn't need to be specified if name is the same :l @@ -40,14 +40,14 @@ speciesProps [Examples:] -chemistryModels +chemistryModels ( species ); speciesProps \{ - ChemistryFile "$casePath/CFD/constant/foam.inp"; - verbose false; + ChemistryFile "$casePath/CFD/constant/foam.inp"; + verbose false; \} :pre [Description:] diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index 4b75bfc4..21c8b382 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -15,11 +15,11 @@ dictionary. dataExchangeModel oneWayVTK; oneWayVTKProps \{ - DEMts timeStep; - relativePath "path"; - couplingFilename "filename"; - maxNumberOfParticles number; -\}; :pre + DEMts timeStep; + relativePath "path"; + couplingFilename "filename"; + maxNumberOfParticles number; +\} :pre {timeStep} = time step size of stored DEM data :ulb,l {path} = path to the VTK data files relative do simulation directory :l @@ -32,10 +32,10 @@ oneWayVTKProps dataExchangeModel oneWayVTK; oneWayVTKProps \{ - DEMts 0.0001; - relativePath "../DEM/post"; - couplingFilename "vtk_out%4.4d.vtk"; - maxNumberOfParticles 30000; + DEMts 0.0001; + relativePath "../DEM/post"; + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; \} :pre [Description:] diff --git a/doc/dataExchangeModel_twoWayFiles.txt b/doc/dataExchangeModel_twoWayFiles.txt index 9387e401..7bc53f37 100644 --- a/doc/dataExchangeModel_twoWayFiles.txt +++ b/doc/dataExchangeModel_twoWayFiles.txt @@ -15,9 +15,9 @@ dictionary. dataExchangeModel twoWayFiles; twoWayFilesProps \{ - couplingFilename "filename"; - maxNumberOfParticles number; -\}; :pre + couplingFilename "filename"; + maxNumberOfParticles number; +\} :pre {filename} = filename of the VTK file series :ulb,l {number} = maximum number of particles in DEM simulation :l @@ -28,8 +28,8 @@ twoWayFilesProps dataExchangeModel twoWayFiles; twoWayFilesProps \{ - couplingFilename "vtk_out%4.4d.vtk"; - maxNumberOfParticles 30000; + couplingFilename "vtk_out%4.4d.vtk"; + maxNumberOfParticles 30000; \} :pre [Description:] diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index 9dadc820..0f847d57 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -16,7 +16,7 @@ dataExchangeModel twoWayMPI; twoWayMPIProps \{ liggghtsPath "path"; -\}; :pre +\} :pre {path} = path to the DEM simulation input file :ulb,l :ule diff --git a/doc/dataExchangeModel_twoWayMany2Many.txt b/doc/dataExchangeModel_twoWayMany2Many.txt index fd4323b8..155121c5 100644 --- a/doc/dataExchangeModel_twoWayMany2Many.txt +++ b/doc/dataExchangeModel_twoWayMany2Many.txt @@ -16,7 +16,7 @@ dataExchangeModel twoWayMany2Many; twoWayMany2ManyProps \{ liggghtsPath "path"; -\}; :pre +\} :pre {path} = path to the DEM simulation input file :ulb,l :ule diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index eb9a5a2f..a3ffceda 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -19,7 +19,7 @@ forceModels ArchimedesProps \{ gravityFieldName "gravity"; -\}; :pre +\} :pre {gravity} = name of the finite volume gravity field :ulb,l :ule diff --git a/doc/forceModel_ArchimedesIB.txt b/doc/forceModel_ArchimedesIB.txt index efa194bb..a72477e6 100644 --- a/doc/forceModel_ArchimedesIB.txt +++ b/doc/forceModel_ArchimedesIB.txt @@ -18,9 +18,9 @@ forceModels ); ArchimedesIBProps \{ - gravityFieldName "gravity"; - voidfractionFieldName "voidfraction"; -\}; :pre + gravityFieldName "gravity"; + voidfractionFieldName "voidfraction"; +\} :pre {gravity} = name of the finite volume gravity field :ulb,l {voidfraction} = name of the finite volume voidfraction field :l @@ -34,8 +34,8 @@ forceModels ); ArchimedesIBProps \{ - gravityFieldName "g"; - voidfractionFieldName "voidfractionNext"; + gravityFieldName "g"; + voidfractionFieldName "voidfractionNext"; \} :pre [Description:] diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 6a7e353d..7b874d7a 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -18,9 +18,9 @@ forceModels ); DiFeliceDragProps \{ - velFieldName "U"; + velFieldName "U"; interpolation switch1; -\}; :pre +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {switch1} = flag to use interpolated voidfraction and velocity values (normally off) :l @@ -34,7 +34,7 @@ forceModels ); DiFeliceDragProps \{ - velFieldName "U"; + velFieldName "U"; interpolation true; \} :pre diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 0d24035d..5e036791 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -18,13 +18,13 @@ forceModels ); GidaspowDragProps \{ - velFieldName "U"; + velFieldName "U"; voidfractionFieldName "voidfraction"; - granVelFieldName "Us"; - phi "scalar"; - interpolation switch1; - implForceDEM switch2; -\}; :pre + granVelFieldName "Us"; + phi scalar; + interpolation switch1; + implForceDEM switch2; +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {voidfraction} = name of the finite volume voidfraction field :l @@ -42,9 +42,9 @@ forceModels ); GidaspowDragProps \{ - velFieldName "U"; + velFieldName "U"; voidfractionFieldName "voidfraction"; - granVelFieldName "Us"; + granVelFieldName "Us"; \} :pre [Description:] diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index d24b878b..2d05c4dd 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -18,16 +18,16 @@ forceModels ); KochHillDragProps \{ - velFieldName "U"; - voidfractionFieldName "voidfraction"; - interpolation "bool1"; - implForceDEM "bool2"; -\}; :pre + velFieldName "U"; + voidfractionFieldName "voidfraction"; + interpolation switch1; + implForceDEM switch2; +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {voidfraction} = name of the finite volume voidfraction field :l -{bool1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l -{bool2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l +{switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l +{switch2} = (optional, normally off) flag to use implicit formulation of drag on DEM side :l :ule [Examples:] @@ -39,7 +39,7 @@ forceModels KochHillDragProps \{ velFieldName "U"; - voidfractionFieldName "voidfraction"; + voidfractionFieldName "voidfraction"; \} :pre [Description:] diff --git a/doc/forceModel_LaEuScalarTemp.txt b/doc/forceModel_LaEuScalarTemp.txt index e4a8c730..89cbf2cc 100644 --- a/doc/forceModel_LaEuScalarTemp.txt +++ b/doc/forceModel_LaEuScalarTemp.txt @@ -18,16 +18,16 @@ forceModels ); LaEuScalarTempProps \{ - velFieldName "U"; - tempFieldName "T"; + velFieldName "U"; + tempFieldName "T"; voidfractionFieldName "voidfraction"; - partTempName "Temp"; - partHeatFluxName "convectiveHeatFlux"; - lambda value; - Cp value1; - interpolation "switch1"; - verbose "switch2"; -\}; :pre + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda value; + Cp value1; + interpolation "switch1"; + verbose "switch2"; +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {T} = name of the finite volume scalar temperature field :l @@ -48,13 +48,13 @@ forceModels ); LaEuScalarTempProps \{ - velFieldName "U"; - tempFieldName "T"; + velFieldName "U"; + tempFieldName "T"; voidfractionFieldName "voidfraction"; - partTempName "Temp"; - partHeatFluxName "convectiveHeatFlux"; - lambda 0.0256; - Cp 1007; + partTempName "Temp"; + partHeatFluxName "convectiveHeatFlux"; + lambda 0.0256; + Cp 1007; \} :pre [Description:] diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index f423da1e..380263bb 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -18,11 +18,11 @@ forceModels ); MeiLiftProps \{ - velFieldName "U"; + velFieldName "U"; useSecondOrderTerms; - interpolation "switch1"; - verbose "switch2"; -\}; :pre + interpolation switch1; + verbose switch2; +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {useSecondOrderTerms} = switch to activate second order terms in the lift force model :l @@ -38,10 +38,10 @@ forceModels ); MeiLiftProps \{ - velFieldName "U"; + velFieldName "U"; useSecondOrderTerms; - interpolation true; - verbose true; + interpolation true; + verbose true; \} :pre [Description:] diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index 1a52456e..0950da69 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -19,7 +19,7 @@ forceModels SchillerNaumannDragProps \{ velFieldName "U"; -\}; :pre +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l :ule diff --git a/doc/forceModel_ShirgaonkarIB.txt b/doc/forceModel_ShirgaonkarIB.txt index 3378babb..42ddcb7b 100644 --- a/doc/forceModel_ShirgaonkarIB.txt +++ b/doc/forceModel_ShirgaonkarIB.txt @@ -20,7 +20,7 @@ ShirgaonkarIBProps \{ velFieldName "U"; pressureFieldName "pressure"; -\}; :pre +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {pressure} = name of the finite volume pressure field :l diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index 1d7669bd..d565ee2a 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -22,10 +22,10 @@ dSauterProps ( X Y Z ); -\}; :pre - -{coarseGrainingFactors} = list of coarse graining factors by type, separated by whitespace, optional :ulb,l +\} :pre +{coarseGrainingFactors} = list of coarse graining factors by type, separated by +whitespace, optional :ulb,l :ule [Description:] diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index d9ada63a..479f5ea5 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -26,7 +26,7 @@ fieldStoreProps ( "vectorField" ); -\}; :pre +\} :pre {scalarField} = names of the finite volume scalar fields to be stored :ulb,l {vectorField} = names of the finite volume vector fields to be stored :l diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index 7c38dccf..bd22dcd1 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -18,10 +18,10 @@ forceModels ); gradPForceProps \{ - pFieldName "pressure"; + pFieldName "pressure"; velocityFieldName "U"; - interpolation switch1; -\}; :pre + interpolation switch1; +\} :pre {pressure} = name of the finite volume fluid pressure field :ulb,l {U} = name of the finite volume fluid velocity field :l @@ -36,9 +36,9 @@ forceModels ); gradPForceProps \{ - pFieldName "p"; + pFieldName "p"; velocityFieldName "U"; - interpolation true; + interpolation true; \} :pre [Description:] diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index dde3e521..6b2190fe 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -16,18 +16,24 @@ forceModels ( noDrag ); :pre +noDragProps (optional) +\{ + noDEMForce; (optional) + keepCFDForce; (optional) +\} :pre + [Examples:] forceModels ( noDrag -); :pre - -noDragProps (optional) +) +noDragProps \{ - noDEMForce; (optional) -\}; :pre + noDEMForce; +\} :pre + [Description:] diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index e444726b..878d4c9f 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -21,7 +21,7 @@ particleCellVolumeProps upperThreshold value; lowerThreshold value2; verbose; -\}; :pre +\} :pre {value} = only cells with a field value (magnitude) lower than this upper threshold are considered :l {value2} = only cells with a field value (magnitude) greater than this lower threshold are considered :l diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index ccd581fa..d46b54fd 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -27,7 +27,7 @@ pdCorrelationProps A B C ); runOnWriteOnly true; -\}; :pre +\} :pre {coarseGrainingFactors} = list of coarse graining factors by type, separated by whitespace, optional :ulb,l {particleDensities} = list of particle densities by type, separated by whitespace, optional :l diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index 8de1f198..ae27acc3 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -19,7 +19,7 @@ forceModels virtualMassForceProps \{ velFieldName "U"; -\}; :pre +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l :ule diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index e0b26ded..d6dcfba7 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -19,8 +19,8 @@ forceModels viscForceProps \{ velocityFieldName "U"; - interpolation "switch"; -\}; :pre + interpolation switch; +\} :pre {U} = name of the finite volume fluid velocity field :ulb,l {switch} = flag to use interpolated stress values (normally off) :l diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index ae28a469..46bb6c21 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -15,11 +15,11 @@ sub-dictionary of the force model in use. forceSubModels ( ImEx; -); +); :pre treatExplicit true; // optional for some force models. treatDEM true; // optional for some force models. -implDEM true; // optional for some force models. +implDEM true; // optional for some force models. :pre [Examples:] @@ -27,7 +27,7 @@ forceSubModels ( ImEx; ); -treatExplicit true; // optional for some force models. +treatExplicit true; // optional for some force models. :pre [Description:] diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index 9418960a..4e223358 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -16,11 +16,10 @@ forceSubModels ( ImExCorr; ); - treatExplicit true; // optional for some force models. treatDEM true; // optional for some force models. implDEM true; // optional for some force models. -explicitInterpCorr true; // optional for some force models. +explicitInterpCorr true; // optional for some force models. :pre [Examples:] @@ -28,7 +27,7 @@ forceSubModels ( ImExCorr; ); -treatExplicit true; // optional for some force models. +treatExplicit true; // optional for some force models. :pre [Description:] diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 9e06f0a6..993f541d 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -23,10 +23,10 @@ executeProps0 run $couplingInterval ); - runFirst switch1; - runLast switch2; + runFirst switch1; + runLast switch2; runEveryCouplingStep switch3; - runEveryWriteStep switch4; + runEveryWriteStep switch4; verbose; \} :pre @@ -52,8 +52,8 @@ executeProps0 run $couplingInterval ); - runFirst off; - runLast off; + runFirst off; + runLast off; runEveryCouplingStep on; \} executeProps1 @@ -69,10 +69,10 @@ executeProps1 liggghts.restart_ timeStamp ); - runFirst off; - runLast off; + runFirst off; + runLast off; runEveryCouplingStep off; - runEveryWriteStep on; + runEveryWriteStep on; \} :pre [Description:] diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index 33ab9300..4adc1e1d 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -27,7 +27,6 @@ readLiggghtsDataProps0 liggghtsCommandModels ( readLiggghtsData - readLiggghtsData ); readLiggghtsDataProps0 \{ diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index acf540da..c426e576 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -19,7 +19,7 @@ engineIBProps \{ treeSearch switch1; \} - zSplit value1; + zSplit value1; xySplit value2; \} :pre @@ -37,7 +37,7 @@ engineIBProps \{ treeSearch false; \} - zSplit 8; + zSplit 8; xySplit 16; \} :pre diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index 67751937..4e2bd997 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -18,10 +18,10 @@ momCoupleModels ); implicitCoupleProps \{ - velFieldName "U"; - granVelFieldName "Us"; + velFieldName "U"; + granVelFieldName "Us"; voidfractionFieldName "voidfraction"; - minAlphaP number; + minAlphaP number; \} :pre {U} = name of the finite volume fluid velocity field :ulb,l @@ -38,8 +38,8 @@ momCoupleModels ); implicitCoupleProps \{ - velFieldName "U"; - granVelFieldName "Us"; + velFieldName "U"; + granVelFieldName "Us"; voidfractionFieldName "voidfraction"; \} :pre diff --git a/doc/probeModel.txt b/doc/probeModel.txt index 02a29b4b..0bd9ef39 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -9,21 +9,19 @@ probeModel command :h3 [Syntax:] -To be activated via couplingProperties dictionary. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. -probeModel myProbeModel; :pre - -Use probe model "off" to disable this feature. - -myProbeModelProps :pre -\{ :pre - -\}; :pre +probeModel model; +modelProps +\{ +\} :pre +model = name of the probeModel to be applied :ul [Examples:] -See "particleProbe"_probeModel_particleProbe.html +probeModel off; :pre Note: This examples list might not be complete - please check below for the list of force models that can perform particle probing. diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index f77f66df..62c44b19 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -12,12 +12,7 @@ probeModel off command :h3 Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary. -forceModels -\{ - myForceModel1 - myForceModel2 - myForceModel3 -\}; :pre +probeModel off; :pre [Examples:] diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index dcc6c8fc..5d9d98ca 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -18,8 +18,8 @@ model = name of the smoothingModel to be applied :ul [Examples:] -smoothingModel off; :pre -smoothingModel constDiffSmoothing; :pre +smoothingModel off; +smoothingModel constDiffSmoothing; :pre Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation. diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index e1855973..0c19bdbe 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -15,9 +15,9 @@ dictionary. smoothingModel constDiffSmoothing; constDiffSmoothingProps \{ - lowerLimit number1; - upperLimit number2; - smoothingLength lengthScale; + lowerLimit number1; + upperLimit number2; + smoothingLength lengthScale; smoothingLengthReferenceField lengthScaleRefField; \} :pre @@ -31,9 +31,9 @@ constDiffSmoothingProps constDiffSmoothingProps \{ - lowerLimit 0.1; - upperLimit 1e10; - smoothingLength 1500e-6; + lowerLimit 0.1; + upperLimit 1e10; + smoothingLength 1500e-6; smoothingLengthReferenceField 9000e-6; \} :pre diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index 48dd029d..5f8ac5d9 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -16,9 +16,9 @@ voidfractionModel Gauss; GaussProps \{ maxCellsPerParticle number1; - alphaMin number2; - weight number3; - porosity number4; + alphaMin number2; + weight number3; + porosity number4; \} :pre {number1} = maximum number of cells covered by a particle (search will fail when more than {number1} cells are covered by the particle) :ulb,l @@ -33,9 +33,9 @@ voidfractionModel Gauss; GaussProps \{ maxCellsPerParticle 1000; - alphaMin 0.10; - weight 1.; - porosity 1.; + alphaMin 0.10; + weight 1.0; + porosity 1.0; \} :pre [Description:] diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index c7cbce63..b72bbe2d 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -16,8 +16,8 @@ voidfractionModel IB; IBProps \{ maxCellsPerParticle number1; - alphaMin number2; - scaleUpVol number3; + alphaMin number2; + scaleUpVol number3; \} :pre {number1} = maximum number of cells covered by a particle (search will fail when more than {number1} cells are covered by the particle) :ulb,l @@ -31,8 +31,8 @@ voidfractionModel IB; IBProps \{ maxCellsPerParticle 1000; - alphaMin 0.10; - scaleUpVol 5.0; + alphaMin 0.10; + scaleUpVol 5.0; \} :pre [Description:] diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 62927931..7f0a2caf 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -16,9 +16,9 @@ voidfractionModel bigParticle; bigParticleProps \{ maxCellsPerParticle number1; - alphaMin number2; - weight number3; - porosity number4; + alphaMin number2; + weight number3; + porosity number4; \} :pre {number1} = maximum number of cells covered by a particle (search will fail when more than {number1} cells are covered by the particle) :ulb,l @@ -33,9 +33,9 @@ voidfractionModel bigParticle; bigParticleProps \{ maxCellsPerParticle 1000; - alphaMin 0.10; - weight 1.; - porosity 5.0; + alphaMin 0.10; + weight 1.; + porosity 5.0; \} :pre [Description:] diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index 12843df4..7fe59820 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -16,7 +16,7 @@ voidfractionModel centre; centreProps \{ alphaMin number1; - weight number2; + weight number2; \} :pre {number1} = minimum limit for voidfraction :ulb,l @@ -29,7 +29,7 @@ voidfractionModel centre; centreProps \{ alphaMin 0.1; - weight 1.; + weight 1.0; \} :pre [Description:] diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index c3903761..e769600e 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -15,10 +15,10 @@ dictionary. voidfractionModel divided; dividedProps \{ - alphaMin number1; + alphaMin number1; interpolation; - weight number2; - porosity number3; + weight number2; + porosity number3; \} :pre {number1} = minimum limit for voidfraction :ulb,l From 61d7a8879396d52d4a3b224fd15bfc8ed541248f Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:25:12 +0200 Subject: [PATCH 12/33] [DOC]fix up formatting for (IMPORTANT) NOTEs --- doc/IOModel.txt | 3 ++- doc/averagingModel.txt | 4 +++- doc/clockModel.txt | 3 ++- doc/dataExchangeModel.txt | 3 ++- doc/forceModel.txt | 2 ++ doc/forceModel_virtualMassForce.txt | 4 +--- doc/forceSubModel.txt | 4 ++-- doc/liggghtsCommandModel.txt | 3 ++- doc/liggghtsCommandModel_execute.txt | 3 ++- doc/liggghtsCommandModel_readLiggghtsData.txt | 5 +---- doc/liggghtsCommandModel_runLiggghts.txt | 5 ++++- doc/locateModel.txt | 3 ++- doc/meshMotionModel.txt | 3 ++- doc/momCoupleModel.txt | 3 ++- doc/probeModel.txt | 3 ++- doc/probeModel_noProbe.txt | 3 ++- doc/regionModel.txt | 3 ++- doc/smoothingModel.txt | 9 +++++++-- doc/smoothingModel_constDiffSmoothing.txt | 9 +++++++-- doc/voidFractionModel.txt | 3 ++- 20 files changed, 51 insertions(+), 27 deletions(-) diff --git a/doc/IOModel.txt b/doc/IOModel.txt index 216c2f4f..04fec29a 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -20,7 +20,8 @@ model = name of IO-model to be applied :ul IOModel off; :pre -Note: This examples list might not be complete - please look for other models (IOModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other IO models +in this documentation. [Description:] diff --git a/doc/averagingModel.txt b/doc/averagingModel.txt index 5e9f6ddf..655dd43e 100644 --- a/doc/averagingModel.txt +++ b/doc/averagingModel.txt @@ -21,7 +21,9 @@ model = name of averaging model to be applied :ul averagingModel dense; averagingModel dilute; :pre -Note: This examples list might not be complete - please look for other averaging models (averagingModel_XY) in this documentation. +NOTE: +This examples list might not be complete - please look for other averaging +models in this documentation. [Description:] diff --git a/doc/clockModel.txt b/doc/clockModel.txt index 642a2c98..e3d261b5 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -20,7 +20,8 @@ model = name of the clockModel to be applied :ul clockModel standardClock; :pre -Note: This examples list might not be complete - please look for other models (clockModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other clock +models in this documentation. [Description:] diff --git a/doc/dataExchangeModel.txt b/doc/dataExchangeModel.txt index 59d13adb..8c07412d 100644 --- a/doc/dataExchangeModel.txt +++ b/doc/dataExchangeModel.txt @@ -21,7 +21,8 @@ model = name of data exchange model to be applied :ul dataExchangeModel twoWayFiles; dataExchangeModel twoWayMPI; :pre -Note: This examples list might not be complete - please look for other models (dataExchangeModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(dataExchangeModel XY) in this documentation. [Description:] diff --git a/doc/forceModel.txt b/doc/forceModel.txt index f267c05a..ad9d5412 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -28,6 +28,8 @@ forceModels DiFeliceDrag ); :pre +NOTE: This examples list might not be complete - please look for other models +(forceModel XY) in this documentation. [Description:] diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index ae27acc3..41f56b88 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -39,9 +39,7 @@ virtualMassForceProps The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The virtualMassForce model calculates the virtual mass force for each particle. -[Restrictions:] - -Model not validated! +IMPORTANT NOTE: Model not validated! [Related commands:] diff --git a/doc/forceSubModel.txt b/doc/forceSubModel.txt index fd21a4ae..768040c5 100644 --- a/doc/forceSubModel.txt +++ b/doc/forceSubModel.txt @@ -26,7 +26,8 @@ forceSubModels ImEx ); :pre -Note: This examples list might not be complete - please look for other models (forceSubModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(forceSubModel XY) in this documentation. [Description:] @@ -40,6 +41,5 @@ None. "ImEx"_forceSubModel_ImEx.html -Note: This examples list may be incomplete - please look for other models (forceSubModel_XY) in this documentation. [Default:] none. diff --git a/doc/liggghtsCommandModel.txt b/doc/liggghtsCommandModel.txt index 15dbe72b..9ad3e306 100644 --- a/doc/liggghtsCommandModel.txt +++ b/doc/liggghtsCommandModel.txt @@ -28,7 +28,8 @@ liggghtsCommandModels writeLiggghts ); :pre -Note: This examples list might not be complete - please look for other models (liggghtsCommandModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(liggghtsCommandModel XY) in this documentation. [Description:] diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 993f541d..90c7599c 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -79,7 +79,8 @@ executeProps1 The execute liggghtsCommand Model can be used to execute a LIGGGHTS command during a CFD run. In above example execute_0 for instance executes "run $couplingInterval" every coupling step. $couplingInterval is automatically replaced by the correct number of DEM steps. Additionally execute_1 executes "write_restart ../DEM/liggghts.restart_$timeStamp" every writing step, where $timeStamp is automatically set. -These rather complex execute commands can be replaced by the "readLiggghts" and "writeLiggghts" commands! :h4 +NOTE: These rather complex execute commands can be replaced by the +{runLiggghts} and {writeLiggghts} commands! [Restrictions:] None. diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index 4adc1e1d..f7491aab 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -37,10 +37,7 @@ readLiggghtsDataProps0 The readLiggghtsData liggghtsCommand Model can be used to ??? - -[Restrictions:] - -Note: Model is not up to date. +IMPORTANT NOTE: Model is outdated. [Related commands:] diff --git a/doc/liggghtsCommandModel_runLiggghts.txt b/doc/liggghtsCommandModel_runLiggghts.txt index 1b438d9e..fb1694d6 100644 --- a/doc/liggghtsCommandModel_runLiggghts.txt +++ b/doc/liggghtsCommandModel_runLiggghts.txt @@ -34,7 +34,10 @@ liggghtsCommandModels The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first. -[Restrictions:] Warning: the "pre no" option can cause troubles (dump data of particles changing the domain might be erroneous)! +[Restrictions:] + +IMPORTANT NOTE: the "pre no" option can cause troubles (dump data of particles +changing the domain might be erroneous)! [Related commands:] diff --git a/doc/locateModel.txt b/doc/locateModel.txt index 46d5a1f2..2eeffd3d 100644 --- a/doc/locateModel.txt +++ b/doc/locateModel.txt @@ -20,7 +20,8 @@ model = name of the locateModel to be applied :ul locateModel engine; :pre -Note: This examples list might not be complete - please look for other models (locateModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(locateModel XY) in this documentation. [Description:] diff --git a/doc/meshMotionModel.txt b/doc/meshMotionModel.txt index b16f8ce9..aab28ff0 100644 --- a/doc/meshMotionModel.txt +++ b/doc/meshMotionModel.txt @@ -20,7 +20,8 @@ model = name of the meshMotionModel to be applied :ul meshMotionModel noMeshMotion; :pre -Note: This examples list might not be complete - please look for other models (meshMotionModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(meshMotionModel XY) in this documentation. [Description:] diff --git a/doc/momCoupleModel.txt b/doc/momCoupleModel.txt index 23dd9bcb..e02176a2 100644 --- a/doc/momCoupleModel.txt +++ b/doc/momCoupleModel.txt @@ -26,7 +26,8 @@ momCoupleModels implicitCouple ); :pre -Note: This examples list might not be complete - please look for other models (momCoupleModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(momCoupleModel XY) in this documentation. Forces can be coupled in an implicit way to the fluid solver (i.e., when solving the Navier-Stokes equations, the fluid velocity at the new time will be considered for the coupling force). This implicit coupling is typically done for the drag forces (look for "impForces()" in the implementation of the drag model). Implicit coupling is more stable (especially important for dense flows), but conflicts Newton's third law. Explicit forces are imposed on the flow solver in an explicit fashion (look for "expForces()" in the implementation of the drag model), which is less stable, but does not conflict Newton's third law. diff --git a/doc/probeModel.txt b/doc/probeModel.txt index 0bd9ef39..e3751e2e 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -23,7 +23,8 @@ model = name of the probeModel to be applied :ul probeModel off; :pre -Note: This examples list might not be complete - please check below for the list of force models that can perform particle probing. +NOTE: This examples list might not be complete - please check below for the list +of probe models that can perform particle probing. [Description:] diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index 62c44b19..1a1abd91 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -18,7 +18,8 @@ probeModel off; :pre probeModel off; :pre -Note: This examples list might not be complete - please check below for the list of force models that can perform particle probing. +NOTE: This examples list might not be complete - please check below for the list +of models that can perform particle probing. [Description:] diff --git a/doc/regionModel.txt b/doc/regionModel.txt index 88787cab..3fa6e262 100644 --- a/doc/regionModel.txt +++ b/doc/regionModel.txt @@ -22,7 +22,8 @@ model = name of the regionModel to be applied :ul regionModel allRegion; :pre -Note: This examples list might not be complete - please look for other models (regionModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(regionModel XY) in this documentation. [Description:] diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index 5d9d98ca..7fbc2d48 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -21,9 +21,14 @@ model = name of the smoothingModel to be applied :ul smoothingModel off; smoothingModel constDiffSmoothing; :pre -Note: This examples list might not be complete - please look for other models (smoothingModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(smoothingModel XY) in this documentation. -ATTENTION: In case a smoothing model is used in conjunction with "PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial time directory! This is because zeroGradient boundary conditions for the fields "f" and "fSmooth" must be specified, otherwise the smoothing operation will give an Error. +IMPORTANT NOTE: In case a smoothing model is used in conjunction with +"PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial +time directory! This is because zeroGradient boundary conditions for the fields +"f" and "fSmooth" must be specified, otherwise the smoothing operation will give +an error. [Description:] diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index 0c19bdbe..9abad593 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -42,10 +42,15 @@ constDiffSmoothingProps The "constDiffSmoothing" model is a basic smoothingModel model which reads a smoothing length scale being used for smoothing the exchange fields (voidfraction, Ksl, f if present). This model can be used for smoothing explicit force coupling fields, as well as implicit force coupling algorithms. Smoothing for reference fields is performed to "fill in" values in cells in which these reference fields are not specified. Values calculated in the cells (via Lagrangian-To-Euler mapping) are NOT changed! These reference fields are, e.g., the average particle velocity, which are not specified in all cells in case the flow is rather dilute. -[Restrictions:] This model is tested in a limited number of flow situations. +[Restrictions:] -ATTENTION: In case a smoothing model is used in conjunction with "PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial time directory! This is because zeroGradient boundary conditions for the fields "f" and "fSmooth" must be specified, otherwise the smoothing operation will give an Error. +This model is tested in a limited number of flow situations. +IMPORTANT NOTE: In case a smoothing model is used in conjunction with +"PimpleImEx" solvers, the fields "f" and "fSmooth" must be placed in the initial +time directory! This is because zeroGradient boundary conditions for the fields +"f" and "fSmooth" must be specified, otherwise the smoothing operation will give +an error. [Related commands:] diff --git a/doc/voidFractionModel.txt b/doc/voidFractionModel.txt index 3e20c564..890ae90a 100644 --- a/doc/voidFractionModel.txt +++ b/doc/voidFractionModel.txt @@ -20,7 +20,8 @@ model = name of the voidfractionModel to be applied :ul voidfractionModel centre; :pre -Note: This examples list might not be complete - please look for other models (voidfractionModel_XY) in this documentation. +NOTE: This examples list might not be complete - please look for other models +(voidfractionModel XY) in this documentation. [Description:] From b61db3f4a92ca895efb5c7d75e1d740be357075c Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:33:41 +0200 Subject: [PATCH 13/33] [DOC] homogenize formatting --- doc/IOModel.txt | 6 ++++-- doc/IOModel_basicIO.txt | 4 +++- doc/IOModel_noIO.txt | 4 +++- doc/IOModel_sophIO.txt | 4 +++- doc/IOModel_trackIO.txt | 4 +++- doc/averagingModel.txt | 7 +++++-- doc/chemistryModel.txt | 6 ++++-- doc/chemistryModel_species.txt | 2 +- doc/clockModel.txt | 8 ++++++-- doc/clockModel_noClock.txt | 4 +++- doc/clockModel_standardClock.txt | 4 +++- doc/dataExchangeModel.txt | 6 ++++-- doc/dataExchangeModel_noDataExchange.txt | 2 +- doc/dataExchangeModel_oneWayVTK.txt | 2 +- doc/dataExchangeModel_twoWayMPI.txt | 2 +- doc/forceModel.txt | 7 +++++-- doc/forceModel_Archimedes.txt | 2 +- doc/forceModel_DiFeliceDrag.txt | 2 +- doc/forceModel_GidaspowDrag.txt | 2 +- doc/forceModel_KochHillDrag.txt | 2 +- doc/forceModel_MeiLift.txt | 2 +- doc/forceModel_SchillerNaumannDrag.txt | 2 +- doc/forceModel_dSauter.txt | 5 +++-- doc/forceModel_fieldStore.txt | 2 +- doc/forceModel_gradPForce.txt | 2 +- doc/forceModel_noDrag.txt | 2 +- doc/forceModel_particleCellVolume.txt | 2 +- doc/forceModel_pdCorrelation.txt | 2 +- doc/forceModel_viscForce.txt | 2 +- doc/forceSubModel.txt | 6 ++++-- doc/forceSubModel_ImEx.txt | 2 +- doc/forceSubModel_ImExCorr.txt | 2 +- doc/liggghtsCommandModel.txt | 7 +++++-- doc/liggghtsCommandModel_execute.txt | 4 +++- doc/liggghtsCommandModel_writeLiggghts.txt | 4 +++- doc/locateModel.txt | 9 +++++++-- doc/locateModel_engineSearch.txt | 4 +++- doc/locateModel_standardSearch.txt | 4 +++- doc/locateModel_turboEngineSearch.txt | 4 +++- doc/meshMotionModel.txt | 9 +++++++-- doc/meshMotionModel_noMeshMotion.txt | 4 +++- doc/momCoupleModel.txt | 9 +++++++-- doc/probeModel.txt | 7 +++++-- doc/probeModel_noProbe.txt | 9 ++++++--- doc/regionModel.txt | 9 +++++++-- doc/regionModel_allRegion.txt | 4 +++- doc/smoothingModel.txt | 9 +++++++-- doc/smoothingModel_noSmoothing.txt | 4 +++- doc/voidFractionModel.txt | 9 +++++++-- doc/voidFractionModel_GaussVoidFraction.txt | 4 +++- doc/voidFractionModel_IBVoidFraction.txt | 4 +++- doc/voidFractionModel_bigParticleVoidFraction.txt | 4 +++- doc/voidFractionModel_centreVoidFraction.txt | 4 +++- doc/voidFractionModel_dividedVoidFraction.txt | 4 +++- 54 files changed, 168 insertions(+), 72 deletions(-) diff --git a/doc/IOModel.txt b/doc/IOModel.txt index 04fec29a..09b972be 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -29,12 +29,14 @@ The IO-model is the base class to write data (e.g. particle properties) to files [Restrictions:] -none. +none [Related commands:] "IOModel basicIO"_IOModel_basicIO.html, "IOModel off"_IOModel_noIO.html, "IOModel sophIO"_IOModel_sophIO.html, "IOModel trackIO"_IOModel_trackIO.html +[Default:] + +none -[Default:] none. diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index 26b5e62d..d8e526f2 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -23,7 +23,9 @@ serialOutput; :pre The basic IO-model writes particle positions velocities and radii to files. The default output directory ($casePath/CFD/proc*/time/lagrangian). Using the keyword "serialOutput;" in couplingProperties the IO is serial to the directory ($casePath/CFD/lagrangian). In the latter case only the data on processor 0 is written! Data is written every write time of the CFD simulation. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index a3c8a03f..4122149f 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -22,7 +22,9 @@ IOModel off; :pre The noIO-model is a dummy IO model. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index 68f55711..0db745d1 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -22,7 +22,9 @@ IOModel sophIO; :pre The sophIO-model is based on basicIO model and additionally writes voidfraction, implicit forces, explicit forces. Data is written every write time of the CFD simulation. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index 0a173a66..512c9c70 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -22,7 +22,9 @@ IOModel trackIO; :pre The trackIO-model is based on sophIO model and additionally writes fields necessary to use the particleTracks utility (which needs a particleTrackProperties file in the constant dir). The particleTracks utility generates tracks of the particles and writes them to a vtk file. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/averagingModel.txt b/doc/averagingModel.txt index 655dd43e..8ee214c7 100644 --- a/doc/averagingModel.txt +++ b/doc/averagingModel.txt @@ -31,10 +31,13 @@ The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. part [Restrictions:] -None. +none [Related commands:] "dense"_averagingModel_dense.html, "dilute"_averagingModel_dilute.html -[Default:] none +[Default:] + +none + diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index 1f535a94..0220ada8 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -35,7 +35,7 @@ The chemistry model initializes the required fields for the calculation of molar [Restrictions:] -None. +none [Related commands:] @@ -43,4 +43,6 @@ None. "massTransferCoeff"_chemistryModel_massTransferCoeff.html, "species"_chemistryModel_species.html -[Default:] none. +[Default:] + +none diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index 9c48ca0e..c7c81ef3 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -56,7 +56,7 @@ The chemistry model performs the calculation of chemical reactional effects acti [Restrictions:] -none. +none [Related commands:] diff --git a/doc/clockModel.txt b/doc/clockModel.txt index e3d261b5..2dd916b4 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -29,6 +29,10 @@ The clockModel is the base class for models to examine the code/algorithm with r Main parts of the clockModel classes are written by Josef Kerbl, JKU. -[Restrictions:] none. +[Restrictions:] -[Default:] none. +none + +[Default:] + +none diff --git a/doc/clockModel_noClock.txt b/doc/clockModel_noClock.txt index 97088e16..ae6af057 100644 --- a/doc/clockModel_noClock.txt +++ b/doc/clockModel_noClock.txt @@ -23,7 +23,9 @@ clockModel off; :pre The {off} model is a dummy clockModel model which does not measure/evaluate the run time. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/clockModel_standardClock.txt b/doc/clockModel_standardClock.txt index 2f483248..e7e2012b 100644 --- a/doc/clockModel_standardClock.txt +++ b/doc/clockModel_standardClock.txt @@ -24,7 +24,9 @@ The "standardClock" model is a basic clockModel model which measures the run tim Since the measurements are stored in an array, it is necessary to put a variable {arrayPos} (type integer) at the start command. Those do not need to be in ascending order and positions may be omitted. The standard size of this array is 30 and can be changed at the initialization of the standardClock class. If {arrayPos} is out of bounds, the array size will be doubled. The stop command does not need {arrayPos}, since the class remembers the positions. The string name is intended for easier evaluation afterwards an may be omitted like ".start(int arrayPos)" and ".stop()". The command ".stop(string name)" is a safety feature, because if the name is not equal to the started name, output will be produced for information. After the case ran you may use the matPlot.py script located in $CFDEM_UT_DIR/vizClock/ to produce a graphical output of your measurements. The usage is like 'python < matPlot.py' and you have to be in the directory of the desired time step, where there is a file called "timeEvalFull.txt", which contains averaged and maximum data with respect to the number of processes. There is an alias called "vizClock" to run this python routine for visualizing the data. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/dataExchangeModel.txt b/doc/dataExchangeModel.txt index 8c07412d..16f104fb 100644 --- a/doc/dataExchangeModel.txt +++ b/doc/dataExchangeModel.txt @@ -30,7 +30,7 @@ The data exchange model performs the data exchange between the DEM code and the [Restrictions:] -None. +none [Related commands:] @@ -39,4 +39,6 @@ None. "twoWayFiles"_dataExchangeModel_twoWayFiles.html, "twoWayMPI"_dataExchangeModel_twoWayMPI.html -[Default:] none +[Default:] + +none diff --git a/doc/dataExchangeModel_noDataExchange.txt b/doc/dataExchangeModel_noDataExchange.txt index 0e2a0ac4..56f15adf 100644 --- a/doc/dataExchangeModel_noDataExchange.txt +++ b/doc/dataExchangeModel_noDataExchange.txt @@ -24,7 +24,7 @@ The data exchange model performs the data exchange between the DEM code and the [Restrictions:] -None. +none [Related commands:] diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index 21c8b382..7a06474a 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -44,7 +44,7 @@ The data exchange model performs the data exchange between the DEM code and the [Restrictions:] -None. +none [Related commands:] diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index 0f847d57..aafdb5cc 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -35,7 +35,7 @@ The data exchange model performs the data exchange between the DEM code and the [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel.txt b/doc/forceModel.txt index ad9d5412..fba0981a 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -37,7 +37,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -None. +none [Related commands:] @@ -45,4 +45,7 @@ None. "gradPForce"_forceModel_gradPForce.html, "viscForce"_forceModel_viscForce.html, "dSauter"_forceModel_dSauter.html -[Default:] none. +[Default:] + +none + diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index a3ffceda..8ffa8b2b 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -41,7 +41,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 7b874d7a..2e863955 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -44,7 +44,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 5e036791..d4841b6f 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -53,7 +53,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index 2d05c4dd..f31a23f6 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -48,7 +48,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index 380263bb..2d5703e3 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -50,7 +50,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -None. +none [Related commands:] diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index 0950da69..532ab2d1 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -41,7 +41,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index d565ee2a..bc9790e7 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -38,8 +38,9 @@ This "forceModel" does not influence the particles or the flow - it calculates t [Restrictions:] -none. +none [Related commands:] -"forceModel"_forceModel.html \ No newline at end of file +"forceModel"_forceModel.html + diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index 479f5ea5..6d8c6068 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -56,7 +56,7 @@ This "forceModel" does not influence the particles or the flow - it is a tool to [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index bd22dcd1..c16f4895 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -47,7 +47,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index 6b2190fe..1ad4dffd 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -41,7 +41,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -None. +none [Related commands:] diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index 878d4c9f..956df32d 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -47,7 +47,7 @@ At "writeTime" a field named particleCellVolume , where scalarField is the name [Restrictions:] -None. +none [Related commands:] diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index d46b54fd..da3832d9 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -47,7 +47,7 @@ This model is sensitive to additionally pulled particle type info, and can eithe [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index d6dcfba7..9e17ecbb 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -43,7 +43,7 @@ The force model performs the calculation of forces (e.g. fluid-particle interact [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceSubModel.txt b/doc/forceSubModel.txt index 768040c5..2831e355 100644 --- a/doc/forceSubModel.txt +++ b/doc/forceSubModel.txt @@ -35,11 +35,13 @@ The force sub model is designed to hold the settings a force model can have. For [Restrictions:] -None. +none [Related commands:] "ImEx"_forceSubModel_ImEx.html +[Default:] + +none -[Default:] none. diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index 46bb6c21..60e02aea 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -35,7 +35,7 @@ treatExplicit true; // optional for some force models. :pre [Restrictions:] -none. +none [Related commands:] diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index 4e223358..9fd3f583 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -35,7 +35,7 @@ treatExplicit true; // optional for some force models. :pre [Restrictions:] -none. +none [Related commands:] diff --git a/doc/liggghtsCommandModel.txt b/doc/liggghtsCommandModel.txt index 9ad3e306..5b6063ec 100644 --- a/doc/liggghtsCommandModel.txt +++ b/doc/liggghtsCommandModel.txt @@ -35,8 +35,11 @@ NOTE: This examples list might not be complete - please look for other models The liggghtsCommandModel is the base class to execute DEM commands within a CFD run. -[Restrictions:] +[Restrictions:] Works only with MPI coupling. -[Default:] none. +[Default:] + +none + diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index 90c7599c..d4e77392 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -82,7 +82,9 @@ The execute liggghtsCommand Model can be used to execute a LIGGGHTS command duri NOTE: These rather complex execute commands can be replaced by the {runLiggghts} and {writeLiggghts} commands! -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/liggghtsCommandModel_writeLiggghts.txt b/doc/liggghtsCommandModel_writeLiggghts.txt index 84ec10dc..ec6a7319 100644 --- a/doc/liggghtsCommandModel_writeLiggghts.txt +++ b/doc/liggghtsCommandModel_writeLiggghts.txt @@ -43,7 +43,9 @@ liggghtsCommandModels The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD write. The "writeLiggghts" command executes the command "write_restart $name", where $name is the name of the restart file, every write step. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/locateModel.txt b/doc/locateModel.txt index 2eeffd3d..4edfa459 100644 --- a/doc/locateModel.txt +++ b/doc/locateModel.txt @@ -27,6 +27,11 @@ NOTE: This examples list might not be complete - please look for other models The locateModel is the base class for models which search for the CFD cell and cellID corresponding to a position. In general it is used to find the cell a particle is located in. -[Restrictions:] none. +[Restrictions:] + +none + +[Default:] + +none -[Default:] none. diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index 993bf121..206ba1a8 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -38,7 +38,9 @@ treeSearch false; will execute some geometric (linear) search using the last treeSearch true; will use a recursive tree structure to find the cell (recommended). :l :ule -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/locateModel_standardSearch.txt b/doc/locateModel_standardSearch.txt index 72ec5d93..aa705bc2 100644 --- a/doc/locateModel_standardSearch.txt +++ b/doc/locateModel_standardSearch.txt @@ -23,7 +23,9 @@ locateModel standard; :pre The locateModel "standard" locates the CFD cell and cellID corresponding to a given position. A very straight-forward (robust!) locate algorithm is used. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/locateModel_turboEngineSearch.txt b/doc/locateModel_turboEngineSearch.txt index b7c4fa7f..c7b4dfad 100644 --- a/doc/locateModel_turboEngineSearch.txt +++ b/doc/locateModel_turboEngineSearch.txt @@ -39,7 +39,9 @@ faceDecomp false; treeSearch false; will execute some geometric (linear) sea faceDecomp false; treeSearch true; will use a recursive tree structure to find the cell. (recommended):l :ule -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/meshMotionModel.txt b/doc/meshMotionModel.txt index aab28ff0..c2b672fe 100644 --- a/doc/meshMotionModel.txt +++ b/doc/meshMotionModel.txt @@ -27,6 +27,11 @@ NOTE: This examples list might not be complete - please look for other models The meshMotionModel is the base class for models which manipulate the CFD mesh according to the DEM mesh motion. -[Restrictions:] none. +[Restrictions:] + +none + +[Default:] + +none -[Default:] none. diff --git a/doc/meshMotionModel_noMeshMotion.txt b/doc/meshMotionModel_noMeshMotion.txt index f339c095..6e923c84 100644 --- a/doc/meshMotionModel_noMeshMotion.txt +++ b/doc/meshMotionModel_noMeshMotion.txt @@ -22,7 +22,9 @@ meshMotionModel noMeshMotion; :pre The noMeshMotion-model is a dummy meshMotion model. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/momCoupleModel.txt b/doc/momCoupleModel.txt index e02176a2..9789c286 100644 --- a/doc/momCoupleModel.txt +++ b/doc/momCoupleModel.txt @@ -38,6 +38,11 @@ Note that the switch "treatVoidCellsAsExplicitForce true;" can be set in the cou The momCoupleModel is the base class for momentum exchange between DEM and CFD simulation. -[Restrictions:] none. +[Restrictions:] + +none + +[Default:] + +none -[Default:] none. diff --git a/doc/probeModel.txt b/doc/probeModel.txt index e3751e2e..e9ce503e 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -32,11 +32,14 @@ The probeModel feature allows to implement various probing features in CFDEM. Cu [Restrictions:] -None. +none [Related commands:] "probeModel off"_probeModel_noProbe.html, "probeModel particleProbe"_probeModel_particleProbe.html -[Default:] none. +[Default:] + +none + diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index 1a1abd91..ed0d0cbd 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -27,10 +27,13 @@ Does not perform any probing. [Restrictions:] -None. +none -[Related commands which are currently enabled for particle probing:] +[Related commands:] "particleProbe"_probeModel_particleProbe.html -[Default:] none. +[Default:] + +none + diff --git a/doc/regionModel.txt b/doc/regionModel.txt index 3fa6e262..b1a1204c 100644 --- a/doc/regionModel.txt +++ b/doc/regionModel.txt @@ -29,6 +29,11 @@ NOTE: This examples list might not be complete - please look for other models The regionModel is the base class for region models to select a certain region for coupled simulation. -[Restrictions:] none. +[Restrictions:] + +none + +[Default:] + +none -[Default:] none. diff --git a/doc/regionModel_allRegion.txt b/doc/regionModel_allRegion.txt index 90dd11f5..91892578 100644 --- a/doc/regionModel_allRegion.txt +++ b/doc/regionModel_allRegion.txt @@ -24,7 +24,9 @@ regionModel allRegion; :pre The allRegion-model is a region model including the whole CFD region for the coupling. -[Restrictions:] None. +[Restrictions:] + +none [Related commands:] diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index 7fbc2d48..dfe1f6a0 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -34,6 +34,11 @@ an error. The smoothingModel is the base class for models that smoothen the exchange fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). This is relevant in case one uses a small grid resolution compared to the local particle diameter (or parcel diameter in case one uses a parcel approach). -[Restrictions:] These models are in beta testing. +[Restrictions:] + +These models are in beta testing. + +[Default:] + +none -[Default:] none. diff --git a/doc/smoothingModel_noSmoothing.txt b/doc/smoothingModel_noSmoothing.txt index 9faa8a23..6b5bf89a 100644 --- a/doc/smoothingModel_noSmoothing.txt +++ b/doc/smoothingModel_noSmoothing.txt @@ -22,7 +22,9 @@ smoothingModel off; :pre The {off} model is a dummy smoothingModel model which performs no smoothing. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/voidFractionModel.txt b/doc/voidFractionModel.txt index 890ae90a..06d0af5b 100644 --- a/doc/voidFractionModel.txt +++ b/doc/voidFractionModel.txt @@ -27,6 +27,11 @@ NOTE: This examples list might not be complete - please look for other models The voidfractionModel is the base class for models to represent the DEM particle's volume in the CFD domain via a voidfraction field. -[Restrictions:] none. +[Restrictions:] + +none + +[Default:] + +none -[Default:] none. diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index 5f8ac5d9..44dc9af7 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -46,7 +46,9 @@ The region of influence of a particle can be increased artificially by "porosity The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index b72bbe2d..b8ed6fda 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -43,7 +43,9 @@ The region of influence of a particle can be increased artificially by "scaleUpV Code of this sub-model contributed by Alice Hager, JKU. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 7f0a2caf..8eefc44d 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -48,7 +48,9 @@ The particle volume occupied in the CFD domain can be adjusted by the parameter Parts of this sub-model contributed by Alice Hager, JKU. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index 7fe59820..c2be19fb 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -38,7 +38,9 @@ The centre voidFraction model calculates the voidfraction in a CFD cell accounti The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index e769600e..69659d19 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -46,7 +46,9 @@ The particle volume occupied in the CFD domain can be adjusted by the parameter In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles. The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary. -[Restrictions:] none. +[Restrictions:] + +none [Related commands:] From c31a6924993fca6b23d4fcc6d617f9776762112f Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:43:45 +0200 Subject: [PATCH 14/33] [DOC] formatting: limit line length --- doc/CFDEMcoupling_dicts.txt | 11 ++++-- doc/IOModel_basicIO.txt | 10 ++++- doc/IOModel_sophIO.txt | 5 ++- doc/IOModel_trackIO.txt | 5 ++- doc/averagingModel.txt | 3 +- doc/averagingModel_dense.txt | 5 ++- doc/averagingModel_dilute.txt | 12 ++++-- doc/cfdemSolverIB.txt | 37 +++++++++++++++---- doc/cfdemSolverPiso.txt | 10 ++++- doc/cfdemSolverPisoScalar.txt | 14 ++++++- doc/chemistryModel.txt | 6 ++- doc/chemistryModel_diffusionCoefficients.txt | 5 ++- doc/chemistryModel_massTransferCoeff.txt | 5 ++- doc/chemistryModel_species.txt | 6 ++- doc/clockModel.txt | 3 +- doc/clockModel_standardClock.txt | 31 ++++++++++++++-- doc/dataExchangeModel.txt | 3 +- doc/dataExchangeModel_noDataExchange.txt | 3 +- doc/dataExchangeModel_oneWayVTK.txt | 4 +- doc/dataExchangeModel_twoWayFiles.txt | 5 ++- doc/dataExchangeModel_twoWayMPI.txt | 5 ++- doc/dataExchangeModel_twoWayMany2Many.txt | 6 ++- doc/forceModel.txt | 6 ++- doc/forceModel_Archimedes.txt | 5 ++- doc/forceModel_ArchimedesIB.txt | 7 +++- doc/forceModel_DiFeliceDrag.txt | 5 ++- doc/forceModel_GidaspowDrag.txt | 7 +++- doc/forceModel_KochHillDrag.txt | 6 ++- doc/forceModel_LaEuScalarTemp.txt | 10 ++++- doc/forceModel_MeiLift.txt | 6 ++- doc/forceModel_SchillerNaumannDrag.txt | 5 ++- doc/forceModel_ShirgaonkarIB.txt | 8 +++- doc/forceModel_dSauter.txt | 3 +- doc/forceModel_fieldStore.txt | 4 +- doc/forceModel_gradPForce.txt | 6 ++- doc/forceModel_noDrag.txt | 7 +++- doc/forceModel_particleCellVolume.txt | 11 +++++- doc/forceModel_pdCorrelation.txt | 7 +++- doc/forceModel_virtualMassForce.txt | 4 +- doc/forceModel_viscForce.txt | 6 ++- doc/forceSubModel.txt | 8 +++- doc/forceSubModel_ImEx.txt | 5 ++- doc/forceSubModel_ImExCorr.txt | 4 +- doc/liggghtsCommandModel.txt | 3 +- doc/liggghtsCommandModel_execute.txt | 7 +++- doc/liggghtsCommandModel_runLiggghts.txt | 9 ++++- doc/liggghtsCommandModel_writeLiggghts.txt | 5 ++- doc/locateModel.txt | 4 +- doc/locateModel_engineSearch.txt | 6 ++- doc/locateModel_engineSearchIB.txt | 15 ++++++-- doc/locateModel_engineSearchMany2Many.txt | 3 +- doc/locateModel_standardSearch.txt | 3 +- doc/locateModel_turboEngineSearch.txt | 13 +++++-- doc/meshMotionModel.txt | 3 +- doc/momCoupleModel.txt | 35 +++++++++++++++--- doc/momCoupleModel_explicitCouple.txt | 3 +- doc/momCoupleModel_implicitCouple.txt | 3 +- doc/probeModel.txt | 6 ++- doc/regionModel.txt | 3 +- doc/smoothingModel.txt | 5 ++- doc/smoothingModel_constDiffSmoothing.txt | 11 +++++- doc/voidFractionModel.txt | 3 +- doc/voidFractionModel_GaussVoidFraction.txt | 12 ++++-- doc/voidFractionModel_IBVoidFraction.txt | 17 +++++++-- ...dFractionModel_bigParticleVoidFraction.txt | 14 +++++-- doc/voidFractionModel_centreVoidFraction.txt | 6 ++- doc/voidFractionModel_dividedVoidFraction.txt | 21 ++++++++--- 67 files changed, 426 insertions(+), 108 deletions(-) diff --git a/doc/CFDEMcoupling_dicts.txt b/doc/CFDEMcoupling_dicts.txt index 6dd87dac..a82faff0 100644 --- a/doc/CFDEMcoupling_dicts.txt +++ b/doc/CFDEMcoupling_dicts.txt @@ -60,9 +60,14 @@ exchanges. A useful procedure would be: -Set the DEM timestep in the in.xxx file according to the needs of the pure DEM problem. :olb,l -Set the "couplingInterval", which refers to the DEM timesteps. Depending on the problem you will need to have a close (small couplingInterval) or loose coupling. :l -Choose the CFD timestep in the controlDict. It must be equal to or smaller than the coupling time, otherwise you will get the error: "Error - TS bigger than coupling interval!". :l,ole +Set the DEM timestep in the LIGGGHTS input file according to the needs of the +pure DEM problem. :olb,l +Set the {couplingInterval}, which refers to the DEM timesteps. Depending on the +problem you will need to have a close (small couplingInterval) or loose +coupling. :l +Choose the CFD timestep in the controlDict. It must be equal to or smaller than +the coupling time, otherwise you will get the error: "Error - TS bigger than +coupling interval!". :l,ole Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen every 0.0001s. diff --git a/doc/IOModel_basicIO.txt b/doc/IOModel_basicIO.txt index d8e526f2..32115308 100644 --- a/doc/IOModel_basicIO.txt +++ b/doc/IOModel_basicIO.txt @@ -21,7 +21,15 @@ serialOutput; :pre [Description:] -The basic IO-model writes particle positions velocities and radii to files. The default output directory ($casePath/CFD/proc*/time/lagrangian). Using the keyword "serialOutput;" in couplingProperties the IO is serial to the directory ($casePath/CFD/lagrangian). In the latter case only the data on processor 0 is written! Data is written every write time of the CFD simulation. +The {basicIO} model writes particle positions, velocities and radii to files. +The default output directory is {$casePath/CFD/proc*/time/lagrangian}. + +Using the keyword {serialOutput;} in the +"couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties dictionary, +the IO is serial to the directory {$casePath/CFD/lagrangian}. In this case +only the data on processor 0 is written! + +Data is written every write time of the CFD simulation. [Restrictions:] diff --git a/doc/IOModel_sophIO.txt b/doc/IOModel_sophIO.txt index 0db745d1..c193be2d 100644 --- a/doc/IOModel_sophIO.txt +++ b/doc/IOModel_sophIO.txt @@ -20,7 +20,10 @@ IOModel sophIO; :pre [Description:] -The sophIO-model is based on basicIO model and additionally writes voidfraction, implicit forces, explicit forces. Data is written every write time of the CFD simulation. +The {sophIO} model is based on the "basicIO"_IOModel_basicIO.html model and +additionally writes voidfraction, implicit forces and explicit forces. + +Data is written every write time of the CFD simulation. [Restrictions:] diff --git a/doc/IOModel_trackIO.txt b/doc/IOModel_trackIO.txt index 512c9c70..fcef4a94 100644 --- a/doc/IOModel_trackIO.txt +++ b/doc/IOModel_trackIO.txt @@ -20,7 +20,10 @@ IOModel trackIO; :pre [Description:] -The trackIO-model is based on sophIO model and additionally writes fields necessary to use the particleTracks utility (which needs a particleTrackProperties file in the constant dir). The particleTracks utility generates tracks of the particles and writes them to a vtk file. +The {trackIO} model is based on the "sophIO"_IOModel_sophIO.html model and +additionally writes fields necessary to use the particleTracks utility (which +needs a particleTrackProperties file in the constant dir). The particleTracks +utility generates tracks of the particles and writes them to a VTK file. [Restrictions:] diff --git a/doc/averagingModel.txt b/doc/averagingModel.txt index 8ee214c7..e474ac75 100644 --- a/doc/averagingModel.txt +++ b/doc/averagingModel.txt @@ -27,7 +27,8 @@ models in this documentation. [Description:] -The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). +The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. +particle velocities). [Restrictions:] diff --git a/doc/averagingModel_dense.txt b/doc/averagingModel_dense.txt index 5dcd41f8..f5c74160 100644 --- a/doc/averagingModel_dense.txt +++ b/doc/averagingModel_dense.txt @@ -20,7 +20,10 @@ averagingModel dense; :pre [Description:] -The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). In the "cfdemParticle cloud" this averaging model is used to calculate the average particle velocity inside a CFD cell. The "dense" model is supposed to be applied to cases where the granular regime is rather dense. +The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. +particle velocities). In the "cfdemParticle cloud" this averaging model is used +to calculate the average particle velocity inside a CFD cell. The {dense} model +is supposed to be applied to cases where the granular regime is rather dense. [Restrictions:] diff --git a/doc/averagingModel_dilute.txt b/doc/averagingModel_dilute.txt index 54dab770..47fa7dfe 100644 --- a/doc/averagingModel_dilute.txt +++ b/doc/averagingModel_dilute.txt @@ -20,12 +20,18 @@ averagingModel dilute; :pre [Description:] -The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. particle velocities). -In the "cfdemParticle cloud" this averaging model is used to calculate the average particle velocity inside a CFD cell. The "dilute" model is supposed to be applied to cases where the granular regime is rather dilute. The particle velocity inside a CFD cell is evaluated from a single particle in a cell (no averaging). +The averaging model performs the Lagrangian->Eulerian mapping of data (e.g. +particle velocities). +In the "cfdemParticle cloud" this averaging model is used to calculate the +average particle velocity inside a CFD cell. The {dilute} model is supposed to +be applied to cases where the granular regime is rather dilute. The particle +velocity inside a CFD cell is evaluated from a single particle in a cell (no +averaging). [Restrictions:] -This model is computationally efficient, but should only be used when only one particle is inside one CFD cell. +This model is computationally efficient but should only be used when only one +particle is inside one CFD cell. [Related commands:] diff --git a/doc/cfdemSolverIB.txt b/doc/cfdemSolverIB.txt index 4af88842..89946232 100644 --- a/doc/cfdemSolverIB.txt +++ b/doc/cfdemSolverIB.txt @@ -9,8 +9,14 @@ cfdemSolverIB command :h3 [Description:] -"cfdemSolverIB" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework, for calculating -the dynamics between immersed bodies and the surrounding fluid. Being an implementation of an immersed boundary method it allows tackling problems where the body diameter exceeds the maximal size of a fluid cell. Using the toolbox of OpenFOAM(R)(*) the governing equations of the fluid are computed and the corrections of velocity and pressure field with respect to the body-movement information, gained from LIGGGHTS, are incorporated. +"cfdemSolverIB" is a coupled CFD-DEM solver using CFDEMcoupling, an open source +parallel coupled CFD-DEM framework, for calculating the dynamics between +immersed bodies and the surrounding fluid. Being an implementation of an +immersed boundary method it allows tackling problems where the body diameter +exceeds the maximal size of a fluid cell. Using the toolbox of OpenFOAM(R)(*) +the governing equations of the fluid are computed and the corrections of +velocity and pressure field with respect to the body-movement information, +gained from LIGGGHTS, are incorporated. Code of this solver contributions by Alice Hager, JKU. @@ -18,17 +24,32 @@ Code of this solver contributions by Alice Hager, JKU. For each time step ... -the motion of the spheres is calculated (position, velocity, angular velocity, force...) with LIGGGHTS using the velocity and pressure-field from the previous time step (initial condition for t=0). :ulb,l -the Navier-Stokes equations are solved on the whole computational domain, disregarding the solid phase. :l -the spheres are located within the mesh: each sphere is represented by a cluster of cells, which are either totally or partially covered by the body, depending on its exact position. :l -the correction of the velocity and pressure field of the fluid phase takes place, using the information about the location of the spheres and their (angular) velocity. :l +the motion of the spheres is calculated (position, velocity, angular velocity, +force...) with LIGGGHTS using the velocity and pressure-field from the previous +time step (initial condition for t=0). :ulb,l +the Navier-Stokes equations are solved on the whole computational domain, +disregarding the solid phase. :l +the spheres are located within the mesh: each sphere is represented by a cluster +of cells, which are either totally or partially covered by the body, depending +on its exact position. :l +the correction of the velocity and pressure field of the fluid phase takes +place, using the information about the location of the spheres and their +(angular) velocity. :l :ule [Use:] -The solver is realized within the Open Source framework CFDEMcoupling. Just as for the unresolved CFD-DEM solver cfdemSolverPiso the file CFD/constant/couplingProperties contains information about the settings for the different models. While IOmodel, DataExchangeModel etc. are applicable for all CFDEMcoupling-solvers, special locate-, force- and void fraction models were designed for the present case: +The solver is realized within the Open Source framework CFDEMcoupling. Just as +for the unresolved CFD-DEM solver cfdemSolverPiso the file +CFD/constant/couplingProperties contains information about the settings for the +different models. While IOmodel, DataExchangeModel etc. are applicable for all +CFDEMcoupling-solvers, special locate-, force- and void fraction models were +designed for the present case: -"engineSearchIB"_locateModel_engineSearchIB.html, "ArchimedesIB"_forceModel_ArchimedesIB.html, "ShirgaonkarIB"_forceModel_ShirgaonkarIB.html, "IBVoidfraction"_voidFractionModel_IBVoidFraction.html +"engineSearchIB"_locateModel_engineSearchIB.html, +"ArchimedesIB"_forceModel_ArchimedesIB.html, +"ShirgaonkarIB"_forceModel_ShirgaonkarIB.html, +"IBVoidfraction"_voidFractionModel_IBVoidFraction.html [References:] diff --git a/doc/cfdemSolverPiso.txt b/doc/cfdemSolverPiso.txt index 4945c1a4..61c88fa3 100644 --- a/doc/cfdemSolverPiso.txt +++ b/doc/cfdemSolverPiso.txt @@ -9,7 +9,15 @@ cfdemSolverPiso command :h3 [Description:] -"cfdemSolverPiso" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying the PISO algorithm, "cfdemSolverPiso" has additional functionality for a coupling to the DEM code "LIGGGHTS". The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles whose trajectories are calculated in the DEM code LIGGGHTS. +"cfdemSolverPiso" is a coupled CFD-DEM solver using CFDEMcoupling, an open +source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite +volume based solver for turbulent Navier-Stokes equations applying the PISO +algorithm, "cfdemSolverPiso" has additional functionality for a coupling to the +DEM code "LIGGGHTS". + +The volume averaged Navier-Stokes Equations are solved accounting for momentum +exchange and volume displacement of discrete particles whose trajectories are +calculated in the DEM code LIGGGHTS. see: diff --git a/doc/cfdemSolverPisoScalar.txt b/doc/cfdemSolverPisoScalar.txt index 5498f62d..5f24bf59 100644 --- a/doc/cfdemSolverPisoScalar.txt +++ b/doc/cfdemSolverPisoScalar.txt @@ -9,7 +9,19 @@ cfdemSolverPisoScalar command :h3 [Description:] -"cfdemSolverPisoScalar" is a coupled CFD-DEM solver using CFDEMcoupling, an open source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite volume based solver for turbulent Navier-Stokes equations applying PISO algorithm, "cfdemSolverPisoScalar" has additional functionality for a coupling to the DEM code "LIGGGHTS" as well as a scalar transport equation. The volume averaged Navier-Stokes Equations are solved accounting for momentum exchange and volume displacement of discrete particles, whose trajectories are calculated in the DEM code LIGGGHTS. The scalar transport equation is coupled to scalar properties of the particle phase, thus convective heat transfer in a fluid granular system can be modeled with "cfdemSolverPisoScalar". +"cfdemSolverPisoScalar" is a coupled CFD-DEM solver using CFDEMcoupling, an open +source parallel coupled CFD-DEM framework. Based on pisoFoam(R)(*), a finite +volume based solver for turbulent Navier-Stokes equations applying PISO +algorithm, "cfdemSolverPisoScalar" has additional functionality for a coupling +to the DEM code "LIGGGHTS" as well as a scalar transport equation. + +The volume averaged Navier-Stokes Equations are solved accounting for momentum +exchange and volume displacement of discrete particles, whose trajectories are +calculated in the DEM code LIGGGHTS. + +The scalar transport equation is coupled to scalar properties of the particle +phase, thus convective heat transfer in a fluid granular system can be modeled +with "cfdemSolverPisoScalar". see: diff --git a/doc/chemistryModel.txt b/doc/chemistryModel.txt index 0220ada8..4ba06f9b 100644 --- a/doc/chemistryModel.txt +++ b/doc/chemistryModel.txt @@ -31,7 +31,11 @@ chemistryModels [Description:] -The chemistry model initializes the required fields for the calculation of molar fractions, determines the diffusion coefficients of the gaseous reactants, calculates the necessary coefficients for the calculation of a mass transfer coefficient. All models are executed sequentially. These values are used in the DEM calculation of particle reduction models. +The chemistry model initializes the required fields for the calculation of molar +fractions, determines the diffusion coefficients of the gaseous reactants, +calculates the necessary coefficients for the calculation of a mass transfer +coefficient. All models are executed sequentially. These values are used in the +DEM calculation of particle reduction models. [Restrictions:] diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 3c665bb8..788d0020 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -45,7 +45,10 @@ diffusionCoefficientsProps [Description:] -The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The diffusionCoefficients model activates the binary molecular diffusion calculation of the reacting species using the Fuller-Schettler-Giddings correlation. +The chemistry model performs the calculation of chemical reactional effects +acting on each DEM particle. The diffusionCoefficients model activates the +binary molecular diffusion calculation of the reacting species using the +Fuller-Schettler-Giddings correlation. [Restrictions:] diff --git a/doc/chemistryModel_massTransferCoeff.txt b/doc/chemistryModel_massTransferCoeff.txt index 96f1c54b..39573ac4 100644 --- a/doc/chemistryModel_massTransferCoeff.txt +++ b/doc/chemistryModel_massTransferCoeff.txt @@ -37,7 +37,10 @@ massTransferCoeffProps [Description:] -The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The coeffs needed to calculate the mass transfer coefficients are transferred to the DEM side, where it is used in the fix_chem_shrink_core module. +The chemistry model performs the calculation of chemical reactional effects +acting on each DEM particle. The coefficients needed to calculate the mass +transfer coefficients are transferred to the DEM side, where it is used in the +{fix chem/shrink/core} module. [Restrictions:] diff --git a/doc/chemistryModel_species.txt b/doc/chemistryModel_species.txt index c7c81ef3..3748f430 100644 --- a/doc/chemistryModel_species.txt +++ b/doc/chemistryModel_species.txt @@ -52,7 +52,11 @@ speciesProps [Description:] -The chemistry model performs the calculation of chemical reactional effects acting on each DEM particle. The species model is the model, where the specified species fields (from the foam.inp folder) are intialized, and information such as temperature, density, molar concentration and more importantly the molar fractions are transferred to DEM side. +The chemistry model performs the calculation of chemical reactional effects +acting on each DEM particle. The species model is the model, where the specified +species fields (from the foam.inp folder) are intialized, and information such +as temperature, density, molar concentration and more importantly the molar +fractions are transferred to DEM side. [Restrictions:] diff --git a/doc/clockModel.txt b/doc/clockModel.txt index 2dd916b4..3b77afb0 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -25,7 +25,8 @@ models in this documentation. [Description:] -The clockModel is the base class for models to examine the code/algorithm with respect to run time. +The clockModel is the base class for models to examine the code/algorithm with +respect to run time. Main parts of the clockModel classes are written by Josef Kerbl, JKU. diff --git a/doc/clockModel_standardClock.txt b/doc/clockModel_standardClock.txt index e7e2012b..596eba70 100644 --- a/doc/clockModel_standardClock.txt +++ b/doc/clockModel_standardClock.txt @@ -20,9 +20,34 @@ clockModel standardClock; :pre [Description:] -The "standardClock" model is a basic clockModel model which measures the run time between every ".start(int arrayPos,string name)" and ".stop(string name)" statement placed in the code. If a ".start(name)" is called more than once (e.g. in a loop) the accumulated times are calculated. After the simulation has finished, the data is stored in $caseDir/CFD/clockData/$startTime/*.txt . -Since the measurements are stored in an array, it is necessary to put a variable {arrayPos} (type integer) at the start command. Those do not need to be in ascending order and positions may be omitted. The standard size of this array is 30 and can be changed at the initialization of the standardClock class. If {arrayPos} is out of bounds, the array size will be doubled. The stop command does not need {arrayPos}, since the class remembers the positions. The string name is intended for easier evaluation afterwards an may be omitted like ".start(int arrayPos)" and ".stop()". The command ".stop(string name)" is a safety feature, because if the name is not equal to the started name, output will be produced for information. -After the case ran you may use the matPlot.py script located in $CFDEM_UT_DIR/vizClock/ to produce a graphical output of your measurements. The usage is like 'python < matPlot.py' and you have to be in the directory of the desired time step, where there is a file called "timeEvalFull.txt", which contains averaged and maximum data with respect to the number of processes. There is an alias called "vizClock" to run this python routine for visualizing the data. +The {standardClock} model is a basic clock model which measures the run time +between every ".start(int arrayPos,string name)" and ".stop(string name)" +statement placed in the code. If a ".start(name)" is called more than once +(e.g. in a loop) the accumulated times are calculated. + +After the simulation has finished, the data is stored in +$caseDir/CFD/clockData/$startTime/*.txt. + +Since the measurements are stored in an array, it is necessary to put a variable +{arrayPos} (type integer) at the start command. Those do not need to be in +ascending order and positions may be omitted. The standard size of this array is +30 and can be changed at the initialization of the standardClock class. If +{arrayPos} is out of bounds, the array size will be doubled. The stop command +does not need {arrayPos}, since the class remembers the positions. The string +name is intended for easier evaluation afterwards an may be omitted like +".start(int arrayPos)" and ".stop()". The command ".stop(string name)" is a +safety feature, because if the name is not equal to the started name, output +will be produced for information. + +After the case ran you may use the matPlot.py script located in +$CFDEM_UT_DIR/vizClock/ to produce a graphical output of your measurements. The +usage is like + +python < matPlot.py :pre +and you have to be in the directory of the desired time step, where there is a +file called "timeEvalFull.txt", which contains averaged and maximum data with +respect to the number of processes. There is an alias called "vizClock" to run +this python routine for visualizing the data. [Restrictions:] diff --git a/doc/dataExchangeModel.txt b/doc/dataExchangeModel.txt index 16f104fb..ee054d2f 100644 --- a/doc/dataExchangeModel.txt +++ b/doc/dataExchangeModel.txt @@ -26,7 +26,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. +The data exchange model performs the data exchange between the DEM code and the +CFD code. [Restrictions:] diff --git a/doc/dataExchangeModel_noDataExchange.txt b/doc/dataExchangeModel_noDataExchange.txt index 56f15adf..676907c8 100644 --- a/doc/dataExchangeModel_noDataExchange.txt +++ b/doc/dataExchangeModel_noDataExchange.txt @@ -20,7 +20,8 @@ dataExchangeModel noDataExchange; :pre [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. The noDataExchange model is a dummy model where no data is exchanged. +The data exchange model performs the data exchange between the DEM code and the +CFD code. The {noDataExchange} model is a dummy model where no data is exchanged. [Restrictions:] diff --git a/doc/dataExchangeModel_oneWayVTK.txt b/doc/dataExchangeModel_oneWayVTK.txt index 7a06474a..f565f0da 100644 --- a/doc/dataExchangeModel_oneWayVTK.txt +++ b/doc/dataExchangeModel_oneWayVTK.txt @@ -40,7 +40,9 @@ oneWayVTKProps [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. The oneWayVTK model is a model that can exchange particle properties from DEM to CFD based on previously stored VTK data. +The data exchange model performs the data exchange between the DEM code and the +CFD code. The {oneWayVTK} model is a model that can exchange particle properties +from DEM to CFD based on previously stored VTK data. [Restrictions:] diff --git a/doc/dataExchangeModel_twoWayFiles.txt b/doc/dataExchangeModel_twoWayFiles.txt index 7bc53f37..9561b12d 100644 --- a/doc/dataExchangeModel_twoWayFiles.txt +++ b/doc/dataExchangeModel_twoWayFiles.txt @@ -34,7 +34,10 @@ twoWayFilesProps [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayFiles model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via files that are sequentially written/read by the codes. +The data exchange model performs the data exchange between the DEM code and the +CFD code. The {twoWayFiles} model is a model that can exchange particle +properties from DEM to CFD and from CFD to DEM. Data is exchanged via files that +are sequentially written/read by the codes. [Restrictions:] diff --git a/doc/dataExchangeModel_twoWayMPI.txt b/doc/dataExchangeModel_twoWayMPI.txt index aafdb5cc..5410ef1e 100644 --- a/doc/dataExchangeModel_twoWayMPI.txt +++ b/doc/dataExchangeModel_twoWayMPI.txt @@ -31,7 +31,10 @@ twoWayMPIProps [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayMPI model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via MPI technique. The DEM run is executed by the coupling model, via a liggghtsCommandModel object. +The data exchange model performs the data exchange between the DEM code and the +CFD code. The {twoWayMPI} model is a model that can exchange particle properties +from DEM to CFD and from CFD to DEM. Data is exchanged via MPI technique. The +DEM run is executed by the coupling model, via a {liggghtsCommandModel} object. [Restrictions:] diff --git a/doc/dataExchangeModel_twoWayMany2Many.txt b/doc/dataExchangeModel_twoWayMany2Many.txt index 155121c5..0cf4e372 100644 --- a/doc/dataExchangeModel_twoWayMany2Many.txt +++ b/doc/dataExchangeModel_twoWayMany2Many.txt @@ -31,7 +31,11 @@ twoWayMany2ManyProps [Description:] -The data exchange model performs the data exchange between the DEM code and the CFD code. The twoWayMany2Many model is a model that can exchange particle properties from DEM to CFD and from CFD to DEM. Data is exchanged via MPI technique using the many to many mapping scheme. The DEM run is executed by the coupling model, via a liggghtsCommandModel object. +The data exchange model performs the data exchange between the DEM code and the +CFD code. The {twoWayMany2Many} model is a model that can exchange particle +properties from DEM to CFD and from CFD to DEM. Data is exchanged via MPI +technique using the many to many mapping scheme. The DEM run is executed by the +coupling model, via a {liggghtsCommandModel} object. [Restrictions:] diff --git a/doc/forceModel.txt b/doc/forceModel.txt index fba0981a..4f8edeba 100644 --- a/doc/forceModel.txt +++ b/doc/forceModel.txt @@ -33,7 +33,11 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. All force models selected are executed sequentially and the forces on the particles are superposed. If the fluid density field is needed, by default a field named "rho" will be used. Via the forceSubModel an alternative field can be chosen. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. All force models selected are +executed sequentially and the forces on the particles are superposed. If the +fluid density field is needed, by default a field named "rho" will be used. Via +the forceSubModel an alternative field can be chosen. [Restrictions:] diff --git a/doc/forceModel_Archimedes.txt b/doc/forceModel_Archimedes.txt index 8ffa8b2b..f45b886e 100644 --- a/doc/forceModel_Archimedes.txt +++ b/doc/forceModel_Archimedes.txt @@ -37,7 +37,10 @@ ArchimedesProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The Archimedes model is a model that calculates the Archimedes' volumetric lift force stemming from density difference of fluid and particle. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {Archimedes} model is a +model that calculates the Archimedes' volumetric lift force stemming from +density difference of fluid and particle. [Restrictions:] diff --git a/doc/forceModel_ArchimedesIB.txt b/doc/forceModel_ArchimedesIB.txt index a72477e6..77a965aa 100644 --- a/doc/forceModel_ArchimedesIB.txt +++ b/doc/forceModel_ArchimedesIB.txt @@ -40,7 +40,12 @@ ArchimedesIBProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The ArchimedesIB model is a model that calculates the ArchimedesIB' volumetric lift force stemming from density difference of fluid and particle. This model is especially suited for resolved CFD-DEM simulations where the particle is represented by immersed boundary method. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {ArchimedesIB} model is a +model that calculates the ArchimedesIB' volumetric lift force stemming from +density difference of fluid and particle. This model is especially suited for +resolved CFD-DEM simulations where the particle is represented by immersed +boundary method. [Restrictions:] diff --git a/doc/forceModel_DiFeliceDrag.txt b/doc/forceModel_DiFeliceDrag.txt index 2e863955..49198afc 100644 --- a/doc/forceModel_DiFeliceDrag.txt +++ b/doc/forceModel_DiFeliceDrag.txt @@ -40,7 +40,10 @@ DiFeliceDragProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The DiFeliceDrag model is a model that calculates the particle based drag force following the correlation of Di Felice (see Zhou et al. (2010), JFM). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {DiFeliceDrag} model is a +model that calculates the particle based drag force following the correlation of +Di Felice (see Zhou et al. (2010), JFM). [Restrictions:] diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index d4841b6f..99118936 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -49,7 +49,12 @@ GidaspowDragProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The GidaspowDrag model is a model that calculates the particle based drag force following the correlation of Gidaspow which is a combination of Ergun (1952) and Wen & Yu (1966) (see Zhu et al. (2007): "Discrete particle simulation of particulate systems: Theoretical developments", ChemEngScience). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {GidaspowDrag} model is a +model that calculates the particle based drag force following the correlation of +Gidaspow which is a combination of Ergun (1952) and Wen & Yu (1966) +(see Zhu et al. (2007): "Discrete particle simulation of particulate systems: +Theoretical developments", ChemEngScience). [Restrictions:] diff --git a/doc/forceModel_KochHillDrag.txt b/doc/forceModel_KochHillDrag.txt index f31a23f6..674bcc2d 100644 --- a/doc/forceModel_KochHillDrag.txt +++ b/doc/forceModel_KochHillDrag.txt @@ -44,7 +44,11 @@ KochHillDragProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The KochHillDrag model is a model that calculates the particle based drag force following the correlation of Koch & Hill (2001) (see van Buijtenen et al. (2011): "Numerical and experimental study on multiple-spout fluidized beds", ChemEngScience). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {KochHillDrag} model is a +model that calculates the particle based drag force following the correlation of +Koch & Hill (2001) (see van Buijtenen et al. (2011): "Numerical and experimental +study on multiple-spout fluidized beds", ChemEngScience). [Restrictions:] diff --git a/doc/forceModel_LaEuScalarTemp.txt b/doc/forceModel_LaEuScalarTemp.txt index 89cbf2cc..2fe0f77e 100644 --- a/doc/forceModel_LaEuScalarTemp.txt +++ b/doc/forceModel_LaEuScalarTemp.txt @@ -59,11 +59,17 @@ LaEuScalarTempProps [Description:] -This "forceModel" does not influence the particles or the fluid flow! Using the particles' temperature a scalar field representing "particle-fluid heatflux" is calculated. The solver then uses this source field in the scalar transport equation for the temperature. The model for convective heat transfer is based on Li and Mason (2000), A computational investigation of transient heat transfer in pneumatic transport of granular particles, Pow.Tech 112 +This "force model" does not influence the particles or the fluid flow! Using the +particles' temperature a scalar field representing "particle-fluid heatflux" is +calculated. The solver then uses this source field in the scalar transport +equation for the temperature. The model for convective heat transfer is based on +Li and Mason (2000), A computational investigation of transient heat transfer in +pneumatic transport of granular particles, Pow.Tech 112 [Restrictions:] -Goes only with cfdemSolverScalar. The force model has to be the second (!!!) model in the forces list. +Goes only with cfdemSolverScalar. The force model has to be the second (!!!) +model in the forces list. [Related commands:] diff --git a/doc/forceModel_MeiLift.txt b/doc/forceModel_MeiLift.txt index 2d5703e3..4e7e9c52 100644 --- a/doc/forceModel_MeiLift.txt +++ b/doc/forceModel_MeiLift.txt @@ -46,7 +46,11 @@ MeiLiftProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The MeiLift model calculates the lift force for each particle based on Loth and Dorgan (2009). In case the keyword "useSecondOrderTerms" is not specified, this lift force model uses the expression of McLaughlin (1991, Journal of Fluid Mechanics 224:261-274). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {MeiLift} model calculates +the lift force for each particle based on Loth and Dorgan (2009). In case the +keyword "useSecondOrderTerms" is not specified, this lift force model uses the +expression of McLaughlin (1991, J. Fluid Mech. 224:261-274). [Restrictions:] diff --git a/doc/forceModel_SchillerNaumannDrag.txt b/doc/forceModel_SchillerNaumannDrag.txt index 532ab2d1..75f41fcf 100644 --- a/doc/forceModel_SchillerNaumannDrag.txt +++ b/doc/forceModel_SchillerNaumannDrag.txt @@ -37,7 +37,10 @@ SchillerNaumannDragProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The SchillerNaumannDrag model is a model that calculates the particle based drag force following the correlation of Schiller and Naumann. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {SchillerNaumannDrag} model +is a model that calculates the particle based drag force following the +correlation of Schiller and Naumann. [Restrictions:] diff --git a/doc/forceModel_ShirgaonkarIB.txt b/doc/forceModel_ShirgaonkarIB.txt index 42ddcb7b..a20b71bc 100644 --- a/doc/forceModel_ShirgaonkarIB.txt +++ b/doc/forceModel_ShirgaonkarIB.txt @@ -40,7 +40,13 @@ ShirgaonkarIBProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The ShirgaonkarIB model calculates the drag force (viscous and pressure force) acting on each particle in a resolved manner (see Shirgaonkar et al. (2009): "A new mathematical formulation and fast algorithm for fully resolved simulation of self-propulsion", Journal of Comp. Physics). This model is only suited for resolved CFD-DEM simulations where the particle is represented by immersed boundary method. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {ShirgaonkarIB} model +calculates the drag force (viscous and pressure force) acting on each particle +in a resolved manner (see Shirgaonkar et al. (2009): "A new mathematical +formulation and fast algorithm for fully resolved simulation of self-propulsion", +J. Comp. Phys). This model is only suited for resolved CFD-DEM simulations where +the particle is represented by immersed boundary method. [References:] diff --git a/doc/forceModel_dSauter.txt b/doc/forceModel_dSauter.txt index bc9790e7..298d0eb7 100644 --- a/doc/forceModel_dSauter.txt +++ b/doc/forceModel_dSauter.txt @@ -30,7 +30,8 @@ whitespace, optional :ulb,l [Description:] -This "forceModel" does not influence the particles or the flow - it calculates the Sauter diameter +This "force model" does not influence the particles or the flow - it calculates +the Sauter diameter :c,image(Eqs/d32.png) . diff --git a/doc/forceModel_fieldStore.txt b/doc/forceModel_fieldStore.txt index 6d8c6068..2e8e01e8 100644 --- a/doc/forceModel_fieldStore.txt +++ b/doc/forceModel_fieldStore.txt @@ -52,7 +52,9 @@ fieldStoreProps [Description:] -This "forceModel" does not influence the particles or the flow - it is a tool to store a scalar/vector field! This is especially useful if you use a boundary condition which cannot interpreted correctly in your postporcessor (e.g. paraview). +This "force model" does not influence the particles or the flow - it is a tool +to store a scalar/vector field! This is especially useful if you use a boundary +condition which cannot interpreted correctly in your postporcessor (e.g. paraview). [Restrictions:] diff --git a/doc/forceModel_gradPForce.txt b/doc/forceModel_gradPForce.txt index c16f4895..a2fd162e 100644 --- a/doc/forceModel_gradPForce.txt +++ b/doc/forceModel_gradPForce.txt @@ -43,7 +43,11 @@ gradPForceProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The gradPForce model is a model that calculates the particle based pressure gradient force -(grad(p)) * Vparticle (see Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability" ,JFM). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {gradPForce} model is a +model that calculates the particle based pressure gradient force -(grad(p)) * +Vparticle (see Zhou et al. (2010): "Discrete particle simulation of +particle-fluid flow: model formulations and their applicability", J. Fluid Mech.). [Restrictions:] diff --git a/doc/forceModel_noDrag.txt b/doc/forceModel_noDrag.txt index 1ad4dffd..e122ef27 100644 --- a/doc/forceModel_noDrag.txt +++ b/doc/forceModel_noDrag.txt @@ -37,7 +37,12 @@ noDragProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The noDrag model sets the forces acting on the particle to zero. If several force models are selected and noDrag is the last model being executed, the fluid particle force will be set to zero. If the variable noDEMForce is set, then the forces communicated to the DEM solver are also set to zero. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {noDrag} model sets the +forces acting on the particle to zero. If several force models are selected and +noDrag is the last model being executed, the fluid particle force will be set to +zero. If the variable {noDEMForce} is set, then the forces communicated to the +DEM solver are also set to zero. [Restrictions:] diff --git a/doc/forceModel_particleCellVolume.txt b/doc/forceModel_particleCellVolume.txt index 956df32d..ed5e396e 100644 --- a/doc/forceModel_particleCellVolume.txt +++ b/doc/forceModel_particleCellVolume.txt @@ -42,8 +42,15 @@ particleCellVolumeProps [Description:] -This "forceModel" does not influence the particles or the simulation - it is a postprocessing tool! The total volume of the particles as they are represented on the CFD mesh is calculated. Further the total volume of the cells particles are in is calculated. -At "writeTime" a field named particleCellVolume , where scalarField is the name of the original field, is written. This can then be probed using standard function object probes. Analogously a field named cellVolume is written. Using the verbose option a screen output is given. +This "force model" does not influence the particles or the simulation - it is a +postprocessing tool! The total volume of the particles as they are represented +on the CFD mesh is calculated. Further the total volume of the cells particles +are in is calculated. + +At "writeTime" a field named particleCellVolume, where scalarField is the name +of the original field, is written. This can then be probed using standard +function object probes. Analogously a field named cellVolume is written. Using +the {verbose} option a screen output is given. [Restrictions:] diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index da3832d9..dbc8ea45 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -38,12 +38,15 @@ pdCorrelationProps [Description:] -This "forceModel" does not influence the particles or the flow - it calculates the particle momentum-diameter correlation +This "forceModel" does not influence the particles or the flow - it calculates +the particle momentum-diameter correlation :c,image(Eqs/pdCorrelation.png) where delta is the type-specific coarsegraining factor. -This model is sensitive to additionally pulled particle type info, and can either use the type-specific densities from the dict or those pulled from LIGGGHTS. +This model is sensitive to additionally pulled particle type info, and can +either use the type-specific densities from the dictionary or those pulled from +LIGGGHTS. [Restrictions:] diff --git a/doc/forceModel_virtualMassForce.txt b/doc/forceModel_virtualMassForce.txt index 41f56b88..d0556c7e 100644 --- a/doc/forceModel_virtualMassForce.txt +++ b/doc/forceModel_virtualMassForce.txt @@ -37,7 +37,9 @@ virtualMassForceProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The virtualMassForce model calculates the virtual mass force for each particle. +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {virtualMassForce} model +calculates the virtual mass force for each particle. IMPORTANT NOTE: Model not validated! diff --git a/doc/forceModel_viscForce.txt b/doc/forceModel_viscForce.txt index 9e17ecbb..04d7ba49 100644 --- a/doc/forceModel_viscForce.txt +++ b/doc/forceModel_viscForce.txt @@ -39,7 +39,11 @@ viscForceProps [Description:] -The force model performs the calculation of forces (e.g. fluid-particle interaction forces) acting on each DEM particle. The viscForce model calculates the particle based viscous force, -(grad(tau)) * Vparticle (see Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: model formulations and their applicability", JFM). +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {viscForce} model +calculates the particle based viscous force, -(grad(tau)) * Vparticle +(see Zhou et al. (2010): "Discrete particle simulation of particle-fluid flow: +model formulations and their applicability", J. Fluid Mech.). [Restrictions:] diff --git a/doc/forceSubModel.txt b/doc/forceSubModel.txt index 2831e355..b4b0f824 100644 --- a/doc/forceSubModel.txt +++ b/doc/forceSubModel.txt @@ -9,7 +9,10 @@ forceSubModel command :h3 [Syntax:] -Defined in couplingProperties sub-dictionary of the force model in use. If no force sub-model is applied ImEx is used as default. If the keyword "forceSubModels" is provided, a choice of sub model is demanded. +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +sub-dictionary of the force model in use. If no force sub-model is applied, ImEx +is used as default. If the keyword "forceSubModels" is provided, a choice of +sub-model is demanded. forceSubModels ( @@ -31,7 +34,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The force sub model is designed to hold the settings a force model can have. For now it handles the treatExplicit, treatDEM and implDEM option. +The force sub model is designed to hold the settings a force model can have. +For now it handles the treatExplicit, treatDEM and implDEM option. [Restrictions:] diff --git a/doc/forceSubModel_ImEx.txt b/doc/forceSubModel_ImEx.txt index 60e02aea..68ccc9d0 100644 --- a/doc/forceSubModel_ImEx.txt +++ b/doc/forceSubModel_ImEx.txt @@ -31,7 +31,10 @@ treatExplicit true; // optional for some force models. :pre [Description:] - If no force sub-model is applied ImEx is used as default. If the keyword "forceSubModels" is provided, a choice of sub model is demanded. Depending on the force model different keywords are read and can therefrore be set (see the log file). If the keyword is provided, its value is used. +If no force sub-model is applied {ImEx} is used as default. If the keyword +"forceSubModels" is provided, a choice of sub model is demanded. Depending on +the force model different keywords are read and can therefrore be set +(see the log file). If the keyword is provided, its value is used. [Restrictions:] diff --git a/doc/forceSubModel_ImExCorr.txt b/doc/forceSubModel_ImExCorr.txt index 9fd3f583..85f6645c 100644 --- a/doc/forceSubModel_ImExCorr.txt +++ b/doc/forceSubModel_ImExCorr.txt @@ -31,7 +31,9 @@ treatExplicit true; // optional for some force models. :pre [Description:] - Same as ImEx, but it additionally reads "explicitInterpCorr" to correct the error steming from interpolation of Ufluid and averaging of Uparticles. +Same as "ImEx"_forceSubModel_ImEx.html, but it additionally reads +"explicitInterpCorr" to correct the error steming from interpolation of Ufluid +and averaging of Uparticles. [Restrictions:] diff --git a/doc/liggghtsCommandModel.txt b/doc/liggghtsCommandModel.txt index 5b6063ec..958eefed 100644 --- a/doc/liggghtsCommandModel.txt +++ b/doc/liggghtsCommandModel.txt @@ -33,7 +33,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The liggghtsCommandModel is the base class to execute DEM commands within a CFD run. +The liggghtsCommandModel is the base class to execute DEM commands within a CFD +run. [Restrictions:] diff --git a/doc/liggghtsCommandModel_execute.txt b/doc/liggghtsCommandModel_execute.txt index d4e77392..e008f7a9 100644 --- a/doc/liggghtsCommandModel_execute.txt +++ b/doc/liggghtsCommandModel_execute.txt @@ -77,7 +77,12 @@ executeProps1 [Description:] -The execute liggghtsCommand Model can be used to execute a LIGGGHTS command during a CFD run. In above example execute_0 for instance executes "run $couplingInterval" every coupling step. $couplingInterval is automatically replaced by the correct number of DEM steps. Additionally execute_1 executes "write_restart ../DEM/liggghts.restart_$timeStamp" every writing step, where $timeStamp is automatically set. +The {execute} liggghtsCommand Model can be used to execute a LIGGGHTS command +during a CFD run. In above example {execute_0} for instance executes +"run $couplingInterval" every coupling step. {$couplingInterval} is automatically +replaced by the correct number of DEM steps. Additionally, {execute_1} executes +"write_restart ../DEM/liggghts.restart_$timeStamp" every writing step, where +{$timeStamp} is automatically set. NOTE: These rather complex execute commands can be replaced by the {runLiggghts} and {writeLiggghts} commands! diff --git a/doc/liggghtsCommandModel_runLiggghts.txt b/doc/liggghtsCommandModel_runLiggghts.txt index fb1694d6..a69c2e1a 100644 --- a/doc/liggghtsCommandModel_runLiggghts.txt +++ b/doc/liggghtsCommandModel_runLiggghts.txt @@ -32,7 +32,14 @@ liggghtsCommandModels [Description:] -The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD run. The "runLiggghts" command executes the command "run $nrDEMsteps", where $nrDEMsteps is automatically set according to the coupling intervals, every coupling step. Optionally a dictionary called runLiggghtsProps can be specified where the "preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for every time step except the first. +The liggghtsCommand models can be used to execute a LIGGGHTS command during a +CFD run. The {runLiggghts} command executes the command "run $nrDEMsteps", where +$nrDEMsteps is automatically set according to the coupling intervals, every +coupling step. + +Optionally a dictionary called runLiggghtsProps can be specified where the +"preNo" switch can be set, which uses the command "run $nrDEMsteps pre no" for +every time step except the first. [Restrictions:] diff --git a/doc/liggghtsCommandModel_writeLiggghts.txt b/doc/liggghtsCommandModel_writeLiggghts.txt index ec6a7319..f3f2f05b 100644 --- a/doc/liggghtsCommandModel_writeLiggghts.txt +++ b/doc/liggghtsCommandModel_writeLiggghts.txt @@ -41,7 +41,10 @@ liggghtsCommandModels [Description:] -The liggghtsCommand models can be used to execute a LIGGGHTS command during a CFD write. The "writeLiggghts" command executes the command "write_restart $name", where $name is the name of the restart file, every write step. +The liggghtsCommand models can be used to execute a LIGGGHTS command during a +CFD write. The {writeLiggghts} command executes the command +"write_restart $name" - where $name is the name of the restart file - every +write step. [Restrictions:] diff --git a/doc/locateModel.txt b/doc/locateModel.txt index 4edfa459..ca02400b 100644 --- a/doc/locateModel.txt +++ b/doc/locateModel.txt @@ -25,7 +25,9 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The locateModel is the base class for models which search for the CFD cell and cellID corresponding to a position. In general it is used to find the cell a particle is located in. +The locateModel is the base class for models which search for the CFD cell and +cellID corresponding to a position. In general it is used to find the cell a +particle is located in. [Restrictions:] diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index 206ba1a8..7c13f1e8 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -31,8 +31,10 @@ engineProps [Description:] -The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. -The engineSearch locate Model can be used with different settings to use different algorithms: +The locateModel {engine} locates the CFD cell and cellID corresponding to a +given position. +The {engine} locate Model can be used with different settings to use different +algorithms: treeSearch false; will execute some geometric (linear) search using the last known cellID :ulb,l treeSearch true; will use a recursive tree structure to find the cell (recommended). :l diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index c426e576..b8736d25 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -43,15 +43,24 @@ engineIBProps [Description:] -The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. This locate model is especially designed for parallel immersed boundary method. Each particle is represented by "satellite points" if it is distributed over several processors. +The locateModel {engineIB} locates the CFD cell and cellID corresponding to a +given position. This locate model is especially designed for parallel immersed +boundary method. Each particle is represented by "satellite points" if it is +distributed over several processors. -The engineSearchIB locate Model can be used with different settings to use different algorithms: +The {engineIB} locate Model can be used with different settings to use different +algorithms: treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l treeSearch true; will use a recursive tree structure to find the cell. :l :ule -This model is a modification of the engine search model. Instead of using the centre-cell as starting point for the engine search, further satellite points located on the surface of the sphere are checked. This ensures that (parts of) spheres can be located even when their centre is on another processor. This is especially important for parallel computations, when a sphere is about to move from one processor to another. +This model is a modification of the {engine} search model. Instead of using the +centre-cell as starting point for the engine search, further satellite points +located on the surface of the sphere are checked. This ensures that (parts of) +spheres can be located even when their centre is on another processor. This is +especially important for parallel computations, when a sphere is about to move +from one processor to another. [Restrictions:] diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index 4456656c..d1abe119 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -37,7 +37,8 @@ engineSearchMany2ManyProps [Description:] -The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. This model is a dummy for the "twoWayMany2Many" dataExchangeModel which locates using the specified "engine" during coupling. Using this model with any other dataExchangeModel will cause problems. +The locateModel "engine" locates the CFD cell and cellID corresponding to a +given position. The engineSearchMany2Many locateModel can be used with different settings to use different algorithms: diff --git a/doc/locateModel_standardSearch.txt b/doc/locateModel_standardSearch.txt index aa705bc2..3afd6324 100644 --- a/doc/locateModel_standardSearch.txt +++ b/doc/locateModel_standardSearch.txt @@ -20,7 +20,8 @@ locateModel standard; :pre [Description:] -The locateModel "standard" locates the CFD cell and cellID corresponding to a given position. A very straight-forward (robust!) locate algorithm is used. +The locateModel {standard} locates the CFD cell and cellID corresponding to a +given position. A very straight-forward (robust!) locate algorithm is used. [Restrictions:] diff --git a/doc/locateModel_turboEngineSearch.txt b/doc/locateModel_turboEngineSearch.txt index c7b4dfad..73836d85 100644 --- a/doc/locateModel_turboEngineSearch.txt +++ b/doc/locateModel_turboEngineSearch.txt @@ -31,12 +31,17 @@ turboEngineProps [Description:] -The locateModel "turboEngine" 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 locateModel {turboEngine} 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 turboEngineSearch locate Model can be used with different settings to use different algorithms: +The turboEngineSearch 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 :ulb,l -faceDecomp false; treeSearch true; will use a recursive tree structure to find the cell. (recommended):l +faceDecomp false; treeSearch false; will execute some geometric (linear) search +using the last known cellID :ulb,l +faceDecomp false; treeSearch true; will use a recursive tree structure to find +the cell. (recommended) :l :ule [Restrictions:] diff --git a/doc/meshMotionModel.txt b/doc/meshMotionModel.txt index c2b672fe..569870d6 100644 --- a/doc/meshMotionModel.txt +++ b/doc/meshMotionModel.txt @@ -25,7 +25,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The meshMotionModel is the base class for models which manipulate the CFD mesh according to the DEM mesh motion. +The {meshMotionModel} is the base class for models which manipulate the CFD mesh +according to the DEM mesh motion. [Restrictions:] diff --git a/doc/momCoupleModel.txt b/doc/momCoupleModel.txt index 9789c286..a8ff48da 100644 --- a/doc/momCoupleModel.txt +++ b/doc/momCoupleModel.txt @@ -29,14 +29,37 @@ momCoupleModels NOTE: This examples list might not be complete - please look for other models (momCoupleModel XY) in this documentation. -Forces can be coupled in an implicit way to the fluid solver (i.e., when solving the Navier-Stokes equations, the fluid velocity at the new time will be considered for the coupling force). This implicit coupling is typically done for the drag forces (look for "impForces()" in the implementation of the drag model). Implicit coupling is more stable (especially important for dense flows), but conflicts Newton's third law. Explicit forces are imposed on the flow solver in an explicit fashion (look for "expForces()" in the implementation of the drag model), which is less stable, but does not conflict Newton's third law. - -Note that the variable "imExSplitFactor" can be set in the couplingProperties in order to treat implicitly defined forces (in the implementation of the force model) as explicit ones. "imExSplitFactor 1.0;" is set by default, meaning that all implicit forces will be considered implicitly, whereas "imExSplitFactor 0.0;" would mean that implicitly defined forces will be treated in an explicit fashion. - -Note that the switch "treatVoidCellsAsExplicitForce true;" can be set in the couplingProperties in order to change the treatment of cells which are void of particles. This is only relevant if (i) smoothing is used, and (ii) implicit force coupling is performed. By default, the particle veloctiy field (Us) will be smoothed to obtain a meaningful reference quantity for the implicit force coupling. In case "treatVoidCellsAsExplicitForce true;" is set, however, Us will not be smoothed and implicit forces (after the smoothing has been performed) in cells void of particles be treated as explicit ones. This avoids the problem of defining Us in cells that are void of particles, but for which an implicit coupling force is obtained in the smoothing process. [Description:] -The momCoupleModel is the base class for momentum exchange between DEM and CFD simulation. +Forces can be coupled in an implicit way to the fluid solver (i.e., when solving +the Navier-Stokes equations, the fluid velocity at the new time will be +considered for the coupling force). This implicit coupling is typically done for +the drag forces (look for "impForces()" in the implementation of the drag model). +Implicit coupling is more stable (especially important for dense flows), but +conflicts Newton's third law. Explicit forces are imposed on the flow solver in +an explicit fashion (look for "expForces()" in the implementation of the drag +model), which is less stable, but does not conflict Newton's third law. + +Note that the variable {imExSplitFactor} can be set in the couplingProperties in +order to treat implicitly defined forces (in the implementation of the force +model) as explicit ones. {imExSplitFactor 1.0;} is set by default, meaning that +all implicit forces will be considered implicitly, whereas +{imExSplitFactor 0.0;} would mean that implicitly defined forces will be treated +in an explicit fashion. + +Note that the switch {treatVoidCellsAsExplicitForce true;} can be set in the +couplingProperties in order to change the treatment of cells which are void of +particles. This is only relevant if (i) smoothing is used, and (ii) implicit +force coupling is performed. By default, the particle veloctiy field (Us) will +be smoothed to obtain a meaningful reference quantity for the implicit force +coupling. In case {treatVoidCellsAsExplicitForce true;} is set, however, Us will +not be smoothed and implicit forces (after the smoothing has been performed) in +cells void of particles be treated as explicit ones. This avoids the problem of +defining Us in cells that are void of particles, but for which an implicit +coupling force is obtained in the smoothing process. + +The {momCoupleModel} is the base class for momentum exchange between DEM and CFD +simulation. [Restrictions:] diff --git a/doc/momCoupleModel_explicitCouple.txt b/doc/momCoupleModel_explicitCouple.txt index 05491988..4a3fe422 100644 --- a/doc/momCoupleModel_explicitCouple.txt +++ b/doc/momCoupleModel_explicitCouple.txt @@ -37,7 +37,8 @@ explicitCoupleProps [Description:] -The explicitCouple-model is a momCoupleModel model providing an explicit momentum source term for the CFD solver. +The {explicitCouple} model is a momCoupleModel model providing an explicit +momentum source term for the CFD solver. [Restrictions:] diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index 4e2bd997..ea4573e5 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -45,7 +45,8 @@ implicitCoupleProps [Description:] -The implicitCouple-model is a momCoupleModel model providing an implicit momentum source term for the CFD solver. +The {implicitCouple} model is a momCoupleModel model providing an implicit +momentum source term for the CFD solver. [Restrictions:] diff --git a/doc/probeModel.txt b/doc/probeModel.txt index e9ce503e..75882da1 100644 --- a/doc/probeModel.txt +++ b/doc/probeModel.txt @@ -28,7 +28,11 @@ of probe models that can perform particle probing. [Description:] -The probeModel feature allows to implement various probing features in CFDEM. Currently, only the "particleProbe"_probeModel_particleProbe.html model is implemented, that performs probing of particle forces. +The {probeModel} feature allows to implement various probing features in CFDEM. +Currently, only the "particleProbe"_probeModel_particleProbe.html model is +implemented, that performs probing of particle forces. + +Use probe model {off} to disable this feature. [Restrictions:] diff --git a/doc/regionModel.txt b/doc/regionModel.txt index b1a1204c..880d09f3 100644 --- a/doc/regionModel.txt +++ b/doc/regionModel.txt @@ -27,7 +27,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The regionModel is the base class for region models to select a certain region for coupled simulation. +The {regionModel} is the base class for region models to select a certain region +for coupled simulation. [Restrictions:] diff --git a/doc/smoothingModel.txt b/doc/smoothingModel.txt index dfe1f6a0..4714c017 100644 --- a/doc/smoothingModel.txt +++ b/doc/smoothingModel.txt @@ -32,7 +32,10 @@ an error. [Description:] -The smoothingModel is the base class for models that smoothen the exchange fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). This is relevant in case one uses a small grid resolution compared to the local particle diameter (or parcel diameter in case one uses a parcel approach). +The {smoothingModel} is the base class for models that smoothen the exchange +fields (i.e., voidfraction and the Ksl field in case of implicit force coupling). +This is relevant in case one uses a small grid resolution compared to the local +particle diameter (or parcel diameter in case one uses a parcel approach). [Restrictions:] diff --git a/doc/smoothingModel_constDiffSmoothing.txt b/doc/smoothingModel_constDiffSmoothing.txt index 9abad593..c6d83f2e 100644 --- a/doc/smoothingModel_constDiffSmoothing.txt +++ b/doc/smoothingModel_constDiffSmoothing.txt @@ -39,8 +39,15 @@ constDiffSmoothingProps [Description:] -The "constDiffSmoothing" model is a basic smoothingModel model which reads a smoothing length scale being used for smoothing the exchange fields (voidfraction, Ksl, f if present). This model can be used for smoothing explicit force coupling fields, as well as implicit force coupling algorithms. -Smoothing for reference fields is performed to "fill in" values in cells in which these reference fields are not specified. Values calculated in the cells (via Lagrangian-To-Euler mapping) are NOT changed! These reference fields are, e.g., the average particle velocity, which are not specified in all cells in case the flow is rather dilute. +The {constDiffSmoothing} model is a basic smoothingModel model which reads a +smoothing length scale being used for smoothing the exchange fields +(voidfraction, Ksl, f if present). This model can be used for smoothing explicit +force coupling fields, as well as implicit force coupling algorithms. +Smoothing for reference fields is performed to "fill in" values in cells in +which these reference fields are not specified. Values calculated in the cells +(via Lagrangian-To-Euler mapping) are NOT changed! These reference fields are, +e.g. the average particle velocity, which are not specified in all cells in case +the flow is rather dilute. [Restrictions:] diff --git a/doc/voidFractionModel.txt b/doc/voidFractionModel.txt index 06d0af5b..b7975131 100644 --- a/doc/voidFractionModel.txt +++ b/doc/voidFractionModel.txt @@ -25,7 +25,8 @@ NOTE: This examples list might not be complete - please look for other models [Description:] -The voidfractionModel is the base class for models to represent the DEM particle's volume in the CFD domain via a voidfraction field. +The {voidfractionModel} is the base class for models to represent the DEM +particle's volume in the CFD domain via a void fraction field. [Restrictions:] diff --git a/doc/voidFractionModel_GaussVoidFraction.txt b/doc/voidFractionModel_GaussVoidFraction.txt index 44dc9af7..f382bd06 100644 --- a/doc/voidFractionModel_GaussVoidFraction.txt +++ b/doc/voidFractionModel_GaussVoidFraction.txt @@ -40,11 +40,17 @@ GaussProps [Description:] -The Gauss voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle. The volume is here distributed according to a Gaussian distribution. +The {Gauss} voidFraction model is supposed to be used when a particle (or its +representation) is bigger than a CFD cell. The voidfraction field is set in +those cell whose centres are inside the particle. The volume is here distributed +according to a Gaussian distribution. -The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. +The region of influence of a particle can be increased artificially by +"porosity", which blows up the particles, but keeps their volume (for +voidfraction calculation) constant. -The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +The particle volume occupied in the CFD domain can be adjusted by the parameter +"weight", using Vparticle=dsphere^3*pi/6*weight. [Restrictions:] diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index b8ed6fda..d732488a 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -20,9 +20,11 @@ IBProps scaleUpVol number3; \} :pre -{number1} = maximum number of cells covered by a particle (search will fail when more than {number1} cells are covered by the particle) :ulb,l +{number1} = maximum number of cells covered by a particle (search will fail when +more than {number1} cells are covered by the particle) :ulb,l {number2} = minimum limit for voidfraction :l -{number3} = diameter of the particle's representation is artificially increased according to {number3} * Vparticle, volume remains unaltered! :l +{number3} = diameter of the particle's representation is artificially increased +according to {number3} * Vparticle, volume remains unaltered! :l :ule [Examples:] @@ -37,9 +39,16 @@ IBProps [Description:] -The IB voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle. The model is specially designed for cfdemSolverIB and creates a smooth transition of the voidfraction at the particle surface. Cells which are only partially covered by solid are marked by voidfraction values between 0 and 1 respectively. +The {IB} voidFraction model is supposed to be used when a particle (or its +representation) is bigger than a CFD cell. The voidfraction field is set in +those cell whose centres are inside the particle. The model is specially +designed for cfdemSolverIB and creates a smooth transition of the voidfraction +at the particle surface. Cells which are only partially covered by solid are +marked by voidfraction values between 0 and 1 respectively. -The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. +The region of influence of a particle can be increased artificially by +"scaleUpVol", which blows up the particles, but keeps their volume (for +voidfraction calculation) constant. Code of this sub-model contributed by Alice Hager, JKU. diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 8eefc44d..37e5490b 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -40,11 +40,19 @@ bigParticleProps [Description:] -The bigParticle voidFraction model is supposed to be used when a particle (or its representation) is bigger than a CFD cell. The voidfraction field is set in those cell whose centres are inside the particle which results in a stairstep representation of the bodies within the mesh (i.e. voidfraction is either 1 (fluid) of zero (solid)). For archiving accurate results, approx. 8 cells per particle diameter are necessary. +The {bigParticle} voidFraction model is supposed to be used when a particle (or +its representation) is bigger than a CFD cell. The voidfraction field is set in +those cell whose centres are inside the particle which results in a stairstep +representation of the bodies within the mesh (i.e. voidfraction is either 1 +(fluid) of zero (solid)). For archiving accurate results, approx. 8 cells per +particle diameter are necessary. -The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. +The region of influence of a particle can be increased artificially by +"porosity", which blows up the particles, but keeps their volume (for +voidfraction calculation) constant. -The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +The particle volume occupied in the CFD domain can be adjusted by the parameter +"weight", using Vparticle=dsphere^3*pi/6*weight. Parts of this sub-model contributed by Alice Hager, JKU. diff --git a/doc/voidFractionModel_centreVoidFraction.txt b/doc/voidFractionModel_centreVoidFraction.txt index c2be19fb..e33ce64d 100644 --- a/doc/voidFractionModel_centreVoidFraction.txt +++ b/doc/voidFractionModel_centreVoidFraction.txt @@ -34,9 +34,11 @@ centreProps [Description:] -The centre voidFraction model calculates the voidfraction in a CFD cell accounting for the volume of the particles whose centres are inside the cell. +The {centre} voidFraction model calculates the voidfraction in a CFD cell +accounting for the volume of the particles whose centres are inside the cell. -The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +The particle volume occupied in the CFD domain can be adjusted by the parameter +"weight", using Vparticle=dsphere^3*pi/6*weight. [Restrictions:] diff --git a/doc/voidFractionModel_dividedVoidFraction.txt b/doc/voidFractionModel_dividedVoidFraction.txt index 69659d19..d87cda43 100644 --- a/doc/voidFractionModel_dividedVoidFraction.txt +++ b/doc/voidFractionModel_dividedVoidFraction.txt @@ -37,14 +37,25 @@ dividedProps [Description:] -The divided voidFraction model is supposed to be used when a particle (or its representation) is in the size range of a CFD cell. Satellite points are used to divide the particle's volume to the touched cells. +The {divided} voidFraction model is supposed to be used when a particle (or its +representation) is in the size range of a CFD cell. Satellite points are used to +divide the particle's volume to the touched cells. -The region of influence of a particle can be increased artificially by "porosity", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. +The region of influence of a particle can be increased artificially by +"porosity", which blows up the particles, but keeps their volume (for +voidfraction calculation) constant. -The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. +The particle volume occupied in the CFD domain can be adjusted by the parameter +"weight", using Vparticle=dsphere^3*pi/6*weight. -In the basic implementation of solvers, the void fraction is calculated based on all particles. Depending on the solver used, the void fraction calculation is also performed for a certain type of particles. -The void fraction calculation is based on a three-step approach (reset, set and interpolate), i.e., the void fraction is time interpolated from a previous and a next void fraction field. Appropriate names for these fields have to be specified in the sub-dictionaries voidFracFieldNamesPrev and voidFracFieldNamesNext in the couplingProperties dictionary. +In the basic implementation of solvers, the void fraction is calculated based on +all particles. Depending on the solver used, the void fraction calculation is +also performed for a certain type of particles. +The void fraction calculation is based on a three-step approach (reset, set and +interpolate), i.e. the void fraction is time interpolated from a previous and a +next void fraction field. Appropriate names for these fields have to be +specified in the sub-dictionaries voidFracFieldNamesPrev and +voidFracFieldNamesNext in the couplingProperties dictionary. [Restrictions:] From 8899c495d4c73c17767d594670120fa892bfc1d2 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:45:36 +0200 Subject: [PATCH 15/33] [DOC] fix bullet lists --- doc/chemistryModel_diffusionCoefficients.txt | 4 ++-- doc/forceModel_GidaspowDrag.txt | 2 +- doc/locateModel_engineSearch.txt | 4 ++-- doc/locateModel_engineSearchIB.txt | 4 ++-- doc/locateModel_engineSearchMany2Many.txt | 5 +++-- doc/momCoupleModel_implicitCouple.txt | 2 +- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 788d0020..3b1754ce 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -23,8 +23,8 @@ diffusionCoefficientsProps diffusantGasNames ( speciesNames ); \} :pre -{switch1} = (optional, normally off) flag to give information :l -{ChemistryFile} = path to file, where the reacting species are listed :ulb,l +{switch1} = (optional, normally off) flag to give information :ulb,l +{ChemistryFile} = path to file, where the reacting species are listed :l {diffusantGasNames} = list of gas field names that are the reactant gases :l :ule diff --git a/doc/forceModel_GidaspowDrag.txt b/doc/forceModel_GidaspowDrag.txt index 99118936..0e6ae07c 100644 --- a/doc/forceModel_GidaspowDrag.txt +++ b/doc/forceModel_GidaspowDrag.txt @@ -31,7 +31,7 @@ GidaspowDragProps {Us} = name of the finite volume cell averaged particle velocity field :l {phi} = drag correction factor (in doubt 1) :l {switch1} = (optional, normally off) flag to use interpolated voidfraction and fluid velocity values :l -{switch2} = (optional, normally off) flag to use implicit formulation of drag on DEM side:l +{switch2} = (optional, normally off) flag to use implicit formulation of drag on DEM side :l :ule [Examples:] diff --git a/doc/locateModel_engineSearch.txt b/doc/locateModel_engineSearch.txt index 7c13f1e8..7f14f086 100644 --- a/doc/locateModel_engineSearch.txt +++ b/doc/locateModel_engineSearch.txt @@ -36,8 +36,8 @@ given position. The {engine} locate Model can be used with different settings to use different algorithms: -treeSearch false; will execute some geometric (linear) search using the last known cellID :ulb,l -treeSearch true; will use a recursive tree structure to find the cell (recommended). :l +treeSearch false; will execute some geometric (linear) search using the last known cellID :ulb,l +treeSearch true; will use a recursive tree structure to find the cell (recommended). :l :ule [Restrictions:] diff --git a/doc/locateModel_engineSearchIB.txt b/doc/locateModel_engineSearchIB.txt index b8736d25..fcfeabf9 100644 --- a/doc/locateModel_engineSearchIB.txt +++ b/doc/locateModel_engineSearchIB.txt @@ -51,8 +51,8 @@ distributed over several processors. The {engineIB} locate Model can be used with different settings to use different algorithms: -treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l -treeSearch true; will use a recursive tree structure to find the cell. :l +treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l +treeSearch true; will use a recursive tree structure to find the cell. :l :ule This model is a modification of the {engine} search model. Instead of using the diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index d1abe119..7beb3267 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -42,8 +42,9 @@ given position. The engineSearchMany2Many locateModel can be used with different settings to use different algorithms: -treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l -treeSearch true; will use a recursive tree structure to find the cell. :l +treeSearch false; will execute some geometric (linear) search using the last +known cellID (recommended) :ulb,l +treeSearch true; will use a recursive tree structure to find the cell. :l :ule [Restrictions:] diff --git a/doc/momCoupleModel_implicitCouple.txt b/doc/momCoupleModel_implicitCouple.txt index ea4573e5..aa5da194 100644 --- a/doc/momCoupleModel_implicitCouple.txt +++ b/doc/momCoupleModel_implicitCouple.txt @@ -27,7 +27,7 @@ implicitCoupleProps {U} = name of the finite volume fluid velocity field :ulb,l {Us} = name of the finite volume granular velocity field :l {voidfraction} = name of the finite volume voidfraction field :l -{number} = minimum value for local particle volume fraction to calculate the exchange filed (default SMALL):l +{number} = minimum value for local particle volume fraction to calculate the exchange filed (default SMALL) :l :ule [Examples:] From 466897a06c612eead45cf6cab9011d964e16e75d Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:47:07 +0200 Subject: [PATCH 16/33] [DOC] add external links --- doc/CFDEMcoupling_about.txt | 2 +- doc/CFDEMcoupling_tutorials.txt | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt index c58c6136..8d0ef45a 100644 --- a/doc/CFDEMcoupling_about.txt +++ b/doc/CFDEMcoupling_about.txt @@ -43,7 +43,7 @@ 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). +"GNU Public License (GPL)"_https://www.gnu.org/licenses/gpl-3.0.en.html. Core development of CFDEMcoupling is done by Christoph Goniva and Christoph Kloss, both at DCS Computing GmbH, 2012 diff --git a/doc/CFDEMcoupling_tutorials.txt b/doc/CFDEMcoupling_tutorials.txt index 52eae24d..9f1944fb 100644 --- a/doc/CFDEMcoupling_tutorials.txt +++ b/doc/CFDEMcoupling_tutorials.txt @@ -57,3 +57,7 @@ OPENFOAM(R) and OpenCFD(R) trade marks. OPENFOAM(R) is a registered trade mark of OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com. +:link(of,http://www.openfoam.org) +:link(lig,http://www.cfdem.com) + + From df685b67efbe4f4d22afb13ca9dc3aa578e706ea Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:48:51 +0200 Subject: [PATCH 17/33] [DOC] fix typos --- doc/CFDEMcoupling_about.txt | 2 +- doc/forceModel_pdCorrelation.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt index 8d0ef45a..dab62d4b 100644 --- a/doc/CFDEMcoupling_about.txt +++ b/doc/CFDEMcoupling_about.txt @@ -7,7 +7,7 @@ 1. About CFDEMcoupling :link(1_1),h3 -CFDEMcoupling provides an open source parallel coupled CFD-DEM framework +CFDEMcoupling provides an open-source parallel coupled CFD-DEM framework combining the strengths of the "LIGGGHTS"_lig DEM code and the Open Source CFD package "OpenFOAM(R)(*)"_of. The CFDEMcoupling toolbox allows to expand standard CFD solvers of "OpenFOAM(R)(*)"_of to include a coupling to the DEM code diff --git a/doc/forceModel_pdCorrelation.txt b/doc/forceModel_pdCorrelation.txt index dbc8ea45..f390b0b7 100644 --- a/doc/forceModel_pdCorrelation.txt +++ b/doc/forceModel_pdCorrelation.txt @@ -42,7 +42,7 @@ This "forceModel" does not influence the particles or the flow - it calculates the particle momentum-diameter correlation :c,image(Eqs/pdCorrelation.png) -where delta is the type-specific coarsegraining factor. +where delta is the type-specific coarse-graining factor. This model is sensitive to additionally pulled particle type info, and can either use the type-specific densities from the dictionary or those pulled from From 29278314c21fa42340b27cb7857c003ca7b01d72 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:51:29 +0200 Subject: [PATCH 18/33] [DOC] formatting / fix links --- doc/CFDEMcoupling_about.txt | 2 +- doc/CFDEMcoupling_dicts.txt | 24 +++++++++++--------- doc/CFDEMcoupling_tutorials.txt | 19 ++++++++-------- doc/IOModel.txt | 2 +- doc/chemistryModel_diffusionCoefficients.txt | 2 +- doc/locateModel_engineSearchMany2Many.txt | 3 ++- doc/meshMotionModel_noMeshMotion.txt | 2 +- doc/regionModel_allRegion.txt | 2 +- 8 files changed, 30 insertions(+), 26 deletions(-) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt index dab62d4b..bf2ff476 100644 --- a/doc/CFDEMcoupling_about.txt +++ b/doc/CFDEMcoupling_about.txt @@ -34,7 +34,7 @@ The file structure: {tutorials} directory including basic tutorial cases showing the functionality :l :ule -Details on installation are given on the "CFDEMproject WWW Site"_lig . +Details on installation are given on the "CFDEMproject Website"_lig . The functionality of this CFD-DEM framework is described via "tutorial cases"_CFDEMcoupling_tutorials.html showing how to use different solvers and models. diff --git a/doc/CFDEMcoupling_dicts.txt b/doc/CFDEMcoupling_dicts.txt index a82faff0..f5d8a855 100644 --- a/doc/CFDEMcoupling_dicts.txt +++ b/doc/CFDEMcoupling_dicts.txt @@ -7,11 +7,11 @@ 4. Dictionaries :link(1_4),h3 -4.1 "couplingProperties" dictionary :link(couplingProperties),h4 +4.1 couplingProperties dictionary :link(couplingProperties),h4 [General:] -In the "couplingProperties" dictionary the setup of the coupling routines of the +In the {couplingProperties} dictionary the setup of the coupling routines of the CFD-DEM simulation are defined. [Location:] $caseDir/CFD/constant @@ -42,7 +42,7 @@ specific parameters. [Settings:] -Reasonable example settings for the "couplingProperties" dictionary are given in +Reasonable example settings for the {couplingProperties} dictionary are given in the tutorial cases. modelType :pre @@ -69,29 +69,31 @@ Choose the CFD timestep in the controlDict. It must be equal to or smaller than the coupling time, otherwise you will get the error: "Error - TS bigger than coupling interval!". :l,ole -Example: DEMts=0.00001s, couplingInterval=10 exchange data (=couple) will happen -every 0.0001s. +[Example:] + +Choosing DEMts=0.00001s and couplingInterval=10 means that an exchange of data +(=coupling) will happen every 0.0001s. :line -4.2 "liggghtsCommands" dictionary :link(liggghtsCommands),h4 +4.2 liggghtsCommands dictionary :link(liggghtsCommands),h4 [General:] -In the "liggghtsCommands" dictionary liggghts commands being executed during a -coupled CFD-DEM simulation are specified. +In the {liggghtsCommands} dictionary LIGGGHTS commands which are to be executed +during a coupled CFD-DEM simulation are specified. [Location:] $caseDir/CFD/constant [Structure:] The dictionary is divided into two parts, first a list of -"liggghtsCommandModels" is defined, then the settings for each model must be -specified. +"liggghtsCommandModels"_CFDEMcoupling_models.html#lcm is defined, then the +settings for each model must be specified. [Settings:] -Reasonable example settings for the "liggghtsCommands" dictionary are given in +Reasonable example settings for the {liggghtsCommands} dictionary are given in the tutorial cases. diff --git a/doc/CFDEMcoupling_tutorials.txt b/doc/CFDEMcoupling_tutorials.txt index 9f1944fb..092f7ae3 100644 --- a/doc/CFDEMcoupling_tutorials.txt +++ b/doc/CFDEMcoupling_tutorials.txt @@ -9,15 +9,15 @@ [General:] -Each solver of the CFDEMcoupling comes with at least one tutorial example, -showing its functionality and correct usage. Provided that the installation is -correct, the tutorials can be run via "Allrun.sh" shell scripts. These scripts -perform all necessary steps (preprocessing, run, postprocessing, visualization). +Each solver of CFDEMcoupling comes with at least one tutorial example, showing +its functionality and correct usage. Provided that the installation is correct, +the tutorials can be run via "Allrun.sh" shell scripts. These scripts perform +all necessary steps (preprocessing, run, postprocessing, visualization). [Location:] -The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, which -can be reached by typing "cfdemTut" +The tutorials can be found in the directory $CFDEM_PROJECT_DIR/tutorials, +which can be reached by typing {cfdemTut} in a CLI terminal. [Structure:] @@ -46,9 +46,10 @@ fvSchemes, controlDict). You can find more information on that in "OpenFOAM(R)(*)"_of documentations. Settings of the coupling routines are defined in -$caseDir/CFD/constant/"couplingProperies"_#1_3 (e.g. force models, data exchange -model, etc.) and $caseDir/CFD/constant/"liggghtsCommands"_#1_3 (allows to -execute a LIGGGHTS command during a coupled simulation). +$caseDir/CFD/constant/"couplingProperies"_CFDEMcoupling_dicts.html#couplingProperties +(e.g. force models, data exchange model, etc.) and +$caseDir/CFD/constant/"liggghtsCommands"_CFDEMcoupling_dicts.html#liggghtsCommands +(allows to execute a LIGGGHTS command during a coupled simulation). NOTE: (*) This offering is not approved or endorsed by OpenCFD Limited, producer and diff --git a/doc/IOModel.txt b/doc/IOModel.txt index 09b972be..bc82cc1c 100644 --- a/doc/IOModel.txt +++ b/doc/IOModel.txt @@ -25,7 +25,7 @@ in this documentation. [Description:] -The IO-model is the base class to write data (e.g. particle properties) to files. +{IOModel} is the base class to write data (e.g. particle properties) to files. [Restrictions:] diff --git a/doc/chemistryModel_diffusionCoefficients.txt b/doc/chemistryModel_diffusionCoefficients.txt index 3b1754ce..df64243b 100644 --- a/doc/chemistryModel_diffusionCoefficients.txt +++ b/doc/chemistryModel_diffusionCoefficients.txt @@ -52,7 +52,7 @@ Fuller-Schettler-Giddings correlation. [Restrictions:] -Species model needs to be active. +The "species"_chemistryModel_species.html model needs to be active. [Related commands:] diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index 7beb3267..b05110c4 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -40,7 +40,8 @@ engineSearchMany2ManyProps The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. -The engineSearchMany2Many locateModel can be used with different settings to use different algorithms: +The {engineSearchMany2Many} locateModel can be used with different settings to +use different algorithms: treeSearch false; will execute some geometric (linear) search using the last known cellID (recommended) :ulb,l diff --git a/doc/meshMotionModel_noMeshMotion.txt b/doc/meshMotionModel_noMeshMotion.txt index 6e923c84..35acfac6 100644 --- a/doc/meshMotionModel_noMeshMotion.txt +++ b/doc/meshMotionModel_noMeshMotion.txt @@ -20,7 +20,7 @@ meshMotionModel noMeshMotion; :pre [Description:] -The noMeshMotion-model is a dummy meshMotion model. +The {noMeshMotion} model is a dummy meshMotion model. [Restrictions:] diff --git a/doc/regionModel_allRegion.txt b/doc/regionModel_allRegion.txt index 91892578..92e88a7c 100644 --- a/doc/regionModel_allRegion.txt +++ b/doc/regionModel_allRegion.txt @@ -22,7 +22,7 @@ regionModel allRegion; :pre [Description:] -The allRegion-model is a region model including the whole CFD region for the coupling. +The {allRegion} model is a region model including the whole CFD region for the coupling. [Restrictions:] From 4c7fd88b281cb84424e5309096d2a458d2ddb459 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:52:28 +0200 Subject: [PATCH 19/33] [DOC] minor rewording --- doc/CFDEMcoupling_about.txt | 7 ++++--- doc/IOModel_noIO.txt | 2 +- doc/cfdemSolverIB.txt | 3 +-- doc/clockModel.txt | 2 +- doc/probeModel_noProbe.txt | 2 +- doc/voidFractionModel_IBVoidFraction.txt | 2 +- doc/voidFractionModel_bigParticleVoidFraction.txt | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/CFDEMcoupling_about.txt b/doc/CFDEMcoupling_about.txt index bf2ff476..e99b4862 100644 --- a/doc/CFDEMcoupling_about.txt +++ b/doc/CFDEMcoupling_about.txt @@ -45,10 +45,11 @@ Method (DEM) coupling. CFDEMcoupling is an open-source code, distributed freely under the terms of the "GNU Public License (GPL)"_https://www.gnu.org/licenses/gpl-3.0.en.html. -Core development of CFDEMcoupling is done by Christoph Goniva and Christoph -Kloss, both at DCS Computing GmbH, 2012 +Core development of the public version of CFDEMcoupling is done by Christoph +Goniva and Christoph Kloss, both at DCS Computing GmbH. -This documentation was written by Christoph Goniva, DCS Computing GmbH, 2012 +The original version of this documentation was written by Christoph Goniva, DCS +Computing GmbH, 2012. :line diff --git a/doc/IOModel_noIO.txt b/doc/IOModel_noIO.txt index 4122149f..92c47159 100644 --- a/doc/IOModel_noIO.txt +++ b/doc/IOModel_noIO.txt @@ -20,7 +20,7 @@ IOModel off; :pre [Description:] -The noIO-model is a dummy IO model. +This IOModel produces no output. [Restrictions:] diff --git a/doc/cfdemSolverIB.txt b/doc/cfdemSolverIB.txt index 89946232..fe5a3a82 100644 --- a/doc/cfdemSolverIB.txt +++ b/doc/cfdemSolverIB.txt @@ -18,7 +18,7 @@ the governing equations of the fluid are computed and the corrections of velocity and pressure field with respect to the body-movement information, gained from LIGGGHTS, are incorporated. -Code of this solver contributions by Alice Hager, JKU. +The code of this solver was contributed by Alice Hager, JKU. [Algorithm:] @@ -55,7 +55,6 @@ designed for the present case: GONIVA, C., KLOSS, C., HAGER,A., WIERINK, G. and PIRKER, S. (2011): "A MULTI-PURPOSE OPEN SOURCE CFD-DEM APPROACH", Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, Trondheim, Norway -and HAGER, A., KLOSS, C. and GONIVA, C. (2011): "TOWARDS AN EFFICIENT IMMERSED BOUNDARY METHOD WITHIN AN OPEN SOURCE FRAMEWORK", Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, Trondheim, Norway NOTE: diff --git a/doc/clockModel.txt b/doc/clockModel.txt index 3b77afb0..370cb59d 100644 --- a/doc/clockModel.txt +++ b/doc/clockModel.txt @@ -28,7 +28,7 @@ models in this documentation. The clockModel is the base class for models to examine the code/algorithm with respect to run time. -Main parts of the clockModel classes are written by Josef Kerbl, JKU. +Main parts of the clockModel classes were written by Josef Kerbl, JKU. [Restrictions:] diff --git a/doc/probeModel_noProbe.txt b/doc/probeModel_noProbe.txt index ed0d0cbd..0b806f8d 100644 --- a/doc/probeModel_noProbe.txt +++ b/doc/probeModel_noProbe.txt @@ -23,7 +23,7 @@ of models that can perform particle probing. [Description:] -Does not perform any probing. +This model does not perform any probing. [Restrictions:] diff --git a/doc/voidFractionModel_IBVoidFraction.txt b/doc/voidFractionModel_IBVoidFraction.txt index d732488a..56f3bac1 100644 --- a/doc/voidFractionModel_IBVoidFraction.txt +++ b/doc/voidFractionModel_IBVoidFraction.txt @@ -50,7 +50,7 @@ The region of influence of a particle can be increased artificially by "scaleUpVol", which blows up the particles, but keeps their volume (for voidfraction calculation) constant. -Code of this sub-model contributed by Alice Hager, JKU. +Code of this sub-model was contributed by Alice Hager, JKU. [Restrictions:] diff --git a/doc/voidFractionModel_bigParticleVoidFraction.txt b/doc/voidFractionModel_bigParticleVoidFraction.txt index 37e5490b..495d1714 100644 --- a/doc/voidFractionModel_bigParticleVoidFraction.txt +++ b/doc/voidFractionModel_bigParticleVoidFraction.txt @@ -54,7 +54,7 @@ voidfraction calculation) constant. The particle volume occupied in the CFD domain can be adjusted by the parameter "weight", using Vparticle=dsphere^3*pi/6*weight. -Parts of this sub-model contributed by Alice Hager, JKU. +Parts of this sub-model were contributed by Alice Hager, JKU. [Restrictions:] From ccbc2b9cba79ace794e5ee4c9d53db7c2d3ae2c2 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:54:12 +0200 Subject: [PATCH 20/33] [DOC] add some missing documentation (partly from PUBLIC) --- doc/forceModel_BeetstraDrag.txt | 103 ++++++++++++++++++++++++++ doc/forceModel_fieldTimeAverage.txt | 70 +++++++++++++++++ doc/forceModel_interface.txt | 72 ++++++++++++++++++ doc/forceModel_volWeightedAverage.txt | 86 +++++++++++++++++++++ doc/probeModel_particleProbe.txt | 102 +++++++++++++++++++++++++ 5 files changed, 433 insertions(+) create mode 100644 doc/forceModel_BeetstraDrag.txt create mode 100644 doc/forceModel_fieldTimeAverage.txt create mode 100644 doc/forceModel_interface.txt create mode 100644 doc/forceModel_volWeightedAverage.txt create mode 100644 doc/probeModel_particleProbe.txt diff --git a/doc/forceModel_BeetstraDrag.txt b/doc/forceModel_BeetstraDrag.txt new file mode 100644 index 00000000..57e09ea5 --- /dev/null +++ b/doc/forceModel_BeetstraDrag.txt @@ -0,0 +1,103 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +forceModel BeetstraDrag command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +forceModels +( + BeetstraDrag +); +BeetstraDragProps +\{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; + minVoidfraction scalar1; + granVelFieldName "Us"; +\ + useFilteredDragModel; + g gravity; + dPrim dPrimValue; + rhoP rhoPValue; + rho rhoValue; + nuf nufValue; +\ + useParcelSizeDependentFilteredDrag; + k kValue; +\ + treatForceExplicit; + implForceDEM; + verbose; + interpolation; +\} :pre + +{U} = name of the finite volume fluid velocity field :ulb,l +{voidfraction} = name of the finite volume voidfraction field :l +{minVoidfraction} = minimum void fraction value to ensure meaningful interpolated void fraction (default = 0.1) :l +{Us} = name of the finite volume cell averaged particle velocity field :l + +{useFilteredDragModel} = switch for using a coarsening correction for the Beetstra drag model (takes grid-size effects into account; default = off) :l + +{gravity} = gravity value (default = 9.81) :l +{dPrimValue} = diameter of primary particle :l +{rhoPValue} = particle density :l +{rhoValue} = finite volume density :l +{nufValue} = kinematic viscosity :l + +{useParcelSizeDependentFilteredDrag} = switch for using a coarsening correction for the Beetstra drag model (only used if {useFilteredDragModel} is on; default = off) :l + +{kValue} = factor for parcels size effect (default = 0.05; must be defined if useParcelSizeDependentFilteredDrag is used) :l + +{interpolation} = flag to use interpolated voidfraction and fluid velocity values (normally off) :l +{treatForceExplicit} = switch to force explicit treatment of force (normally off) :l +{implForceDEM} = flag to use implicit formulation of drag on DEM side (normally off, if on, this switch will force {treatForceExplicit} to be off) :l +{verbose} = switch to force display of data on screen (default: off; typically used for debug purposes) :l +:ule + +[Examples:] + +forceModels +( + BeetstraDrag +); +BeetstraDragProps +\{ + velFieldName "U"; + voidfractionFieldName "voidfraction"; + granVelFieldName "Us"; + interpolation true; + useFilteredDragModel; + g 9.81; + dPrim 100e-6; + rhoP 7000.; + rho 10.; + nuf 1.5e-4; + useParcelSizeDependentFilteredDrag; + k 0.05; +\} :pre + +[Description:] + +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {BeetstraDrag} model is a +model that calculates the particle based drag force following the correlation of +Beetstra et al., AIChE J., 53(2) (2007). +The filtered drag model is based on S. Radl, S. Sundaresan, Chem. Eng. Sci., 117 (2014). + +[Restrictions:] + +This model is strictly valid only for monodisperse gas-particle flows. +For the polydisperse model of Beetstra et al. (2007) use {BeetstraDragPoly}. + +[Related commands:] + +"forceModel"_forceModel.html, BeetstraDragPoly + diff --git a/doc/forceModel_fieldTimeAverage.txt b/doc/forceModel_fieldTimeAverage.txt new file mode 100644 index 00000000..1304242d --- /dev/null +++ b/doc/forceModel_fieldTimeAverage.txt @@ -0,0 +1,70 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +forceModel fieldTimeAverage command :h3 + +[Syntax:] + +Defined in couplingProperties dictionary. + +forceModels +( + fieldTimeAverage +); +fieldTimeAverageProps +\{ + startTime time; + scalarFieldNames + ( + "scalarField" + ); + vectorFieldNames + ( + "vectorField" + ); +\} :pre + +{time} = (optional) time to start temporal averaging :ulb,l +{scalarField} = names of the finite volume scalar fields to be temporally averaged :l +{vectorField} = names of the finite volume vector fields to be temporally averaged :l +:ule + +[Examples:] + +forceModels +( + fieldTimeAverage +); +fieldTimeAverageProps +\{ + startTime 1.0; + scalarFieldNames + ( + "voidfraction" + ); + vectorFieldNames + ( + "Us" + ); +\} :pre + +[Description:] + +This "force model" does not influence the particles or the simulation - it is a +postprocessing tool! Starting at start time the specified fields are temporally +averaged and written at "writeTime". They can then be probed using standard +function object probes. The output name is timeAverage_scalarField, where +scalarField is the name of the original field. + +[Restrictions:] + +none + +[Related commands:] + +"forceModel"_forceModel.html + diff --git a/doc/forceModel_interface.txt b/doc/forceModel_interface.txt new file mode 100644 index 00000000..0e435413 --- /dev/null +++ b/doc/forceModel_interface.txt @@ -0,0 +1,72 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +forceModel interface command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +forceModels +( + interface +); +interfaceProps +\{ + VOFvoidfractionFieldName "alpha"; + alphaThreshold value1; + sigma value2; + theta value3; +\} :pre + +{alpha} = name of the finite volume fluid volume fraction field in a VOF simulation :ulb,l +{value1} = parameter used to define the distance of influence of the model :l +{value2} = fluid gas surface tension :l +{value3} = Three-phase contact angle for interface force :l +:ule + +[Examples:] + +forceModels +( + interface +); +interfaceProps +\{ + VOFvoidfractionFieldName "alpha"; + alphaThreshold 0.54; + sigma 0.07; + theta 1.12; +\} :pre + +[Description:] + +The force model performs the calculation of forces (e.g. fluid-particle +interaction forces) acting on each DEM particle. The {interface} model is a +model that calculates the particle-fluid-gas interfacial force. +(see "Wierink et al. (2011)"_#Wierink2011) + +[Restrictions:] + +Only for VOF simulations. + +[Related commands:] + +"forceModel"_forceModel.html + +:line + +:link(Wierink2011) +[(Wierink 2011)] +"Mechanistic modelling of particle interface interaction in three phase flows", +Wierink G., Goniva C., Niceno B., Heiskanen K., +Proc. of the 8th Int. Conf. on CFD in Oil and Gas, Metallurgical and Process Industries, +Trondheim, Norway. + + + diff --git a/doc/forceModel_volWeightedAverage.txt b/doc/forceModel_volWeightedAverage.txt new file mode 100644 index 00000000..6013dc8e --- /dev/null +++ b/doc/forceModel_volWeightedAverage.txt @@ -0,0 +1,86 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +forceModel volWeightedAverage command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +forceModels +( + volWeightedAverage +); +volWeightedAverageProps +\{ + startTime time; + scalarFieldNames + ( + scalarField + ); + vectorFieldNames + ( + vectorField + ); + upperThreshold scalar1; + lowerThreshold scalar2; + useVolumeFraction switch0; + volumeFractionName word1; + verbose; + writeToFile switch1; +\} :pre + +{time} = (optional, default 0.) time to start the averaging :ulb,l +{scalarField} = names of the finite volume scalar fields to be temporally averaged :l +{vectorField} = names of the finite volume vector fields to be temporally averaged :l +{scalar1} = only cells with a field value (magnitude) lower than this upper threshold are considered :l +{scalar2} = only cells with a field value (magnitude) greater than this lower threshold are considered :l +{switch0} = (optional, default false) consider a volume fraction for the calculation :l +{word1} = (optional, default "voidfraction") name of the volume fraction, only used if useVolumeFraction is true :l +{verbose} = (optional, default false) keyword only (mostly used for debugging) :l +{switch1} = (optional, default false) switch for the output. :l +:ule + +[Examples:] + +forceModels +( + volWeightedAverage +); +volWeightedAverageProps +\{ + startTime 0.1; + scalarFieldNames + ( + voidfraction + ); + vectorFieldNames + ( + ); + upperThreshold 0.999; + lowerThreshold 0; +\} :pre + +[Description:] + +This "forceModel" does not influence the particles or the simulation - it is a +postprocessing tool! Starting at start time the volume weighted averages of +those cells of the fields within the threshold are calculated. + +At "writeTime" a field named volAverage_field, where scalarField is the name of +the original field, is written. This can then be probed using standard function +object probes. + +[Restrictions:] + +Currently all fields have the same threshold value! + +[Related commands:] + +"forceModel"_forceModel.html + diff --git a/doc/probeModel_particleProbe.txt b/doc/probeModel_particleProbe.txt new file mode 100644 index 00000000..0d664b46 --- /dev/null +++ b/doc/probeModel_particleProbe.txt @@ -0,0 +1,102 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +probeModel particleProbe command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +forceModels +( + forceModel1 + forceModel2 + forceModel3 +); :pre + +probeModel particleProbe; :pre + +particleProbeProps +\{ + particleIDsToSample (ID1 ID2 ID3 ...); // list of particleIDs to sample + verboseToFile; // main switch + verbose; // currently not used + printEvery xEvery; // print every this many CFD time steps + sampleAll; // Activate sampling for all particles + probeDebug; // probes additional fields + includePosition; // will include particle position in the output file + writePrecision xPrecision; // number of significant digits to print +\} :pre + +{forceModeli} = list of force models in the simulation, the particleProbe will be applied to all of these models! :ulb,l +{particleIDsToSample} = list of particle IDs to be sampled. :l +{verboseToFile} = main switch to activate the particle probe (default = off). :l +{verbose} = main switch to activate output to Info (currently not implemented). :l +{xEvery} = integer to specify the interval for sampling (default = 1, i.e., probing occurs every CFD time step). :l +{sampleAll} = switch to activate sampling of all particles. Otherwise (default) only particles specified via "particleIDsToSample" in the couplingProperties dictionary will be sampled. :l + +{probeDebug} = switch to activate probing of debug properties of secondary importance (specific for each force model). :l +{includePosition} = switch to add the particle position in the log file (default = off). :l +{xPrecision} = number of significant digits of the text output (default = 3). :l +:ule + +[Examples:] + +forceModels +( + gradPForce +); :pre + +probeModel particleProbe; :pre + +particleProbeProps +\{ + particleIDsToSample (0 1 2 3); + verboseToFile; // main switch + verbose; // currently not used + printEvery 100; // print every this many CFD time steps + sampleAll; // activate sampling for all particles + probeDebug; // probes additional fields + includePosition; // will include particle position in the output file + writePrecision 4; // number of significant digits to print +\}; :pre + +NOTE: This examples list might not be complete - please check below for the list +of models that can perform particle probing. + +[Description:] + +The {particleProbe} feature keeps track of per-particle quantities (e.g., the +fluid-particle interaction forces) acting on each DEM particle, and handles its +storage during the simulation. Data is saved in the +$caseDir/CFD/particleProbes/startTime directory, where {startTime} is the time +at which the simulation is started (this avoids unwanted deletion of +particleProbe data). + +[Restrictions:] + +none + +[Related commands:] + +The following force models are currently enabled for particle probing: + +Archimedes, ArchimedesIB, BeetstraDrag, DiFeliceDrag, GidaspowDrag, +KochHillDrag, SchillerNaumannDrag, ShirgaonkarIB, virtualMassForce, +"gradPForce"_forceModel_gradPForce.html, "viscForce"_forceModel_viscForce.html, +"MeiLift"_forceModel_MeiLift.html, that is most of the forceModels, see the +{src} directory for details, i.e. use + +grep -r 'probeM(' ./ :pre + +in a CLI terminal. + +[Default:] + +none + From b1f35372e62747e7caf98f25db5c86504074be2d Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:55:24 +0200 Subject: [PATCH 21/33] [DOC] add to description --- doc/liggghtsCommandModel_readLiggghtsData.txt | 3 ++- doc/locateModel_engineSearchMany2Many.txt | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/liggghtsCommandModel_readLiggghtsData.txt b/doc/liggghtsCommandModel_readLiggghtsData.txt index f7491aab..e2fc588d 100644 --- a/doc/liggghtsCommandModel_readLiggghtsData.txt +++ b/doc/liggghtsCommandModel_readLiggghtsData.txt @@ -35,7 +35,8 @@ readLiggghtsDataProps0 [Description:] -The readLiggghtsData liggghtsCommand Model can be used to ??? +The {readLiggghtsData} liggghtsCommandModel can be used to read LIGGGHTS data +files into LIGGGHTS during runtime of a coupled simulation. IMPORTANT NOTE: Model is outdated. diff --git a/doc/locateModel_engineSearchMany2Many.txt b/doc/locateModel_engineSearchMany2Many.txt index b05110c4..a39aba99 100644 --- a/doc/locateModel_engineSearchMany2Many.txt +++ b/doc/locateModel_engineSearchMany2Many.txt @@ -39,6 +39,11 @@ engineSearchMany2ManyProps The locateModel "engine" locates the CFD cell and cellID corresponding to a given position. +This model is a dummy for the +"twoWayMany2Many dataExchangeModel"_dataExchangeModel_twoWayMany2Many.html which +locates using the specified "engine" during coupling. + +NOTE: Using this model with any other dataExchangeModel will cause problems. The {engineSearchMany2Many} locateModel can be used with different settings to use different algorithms: From fa1369278b32b20df78013f8fc5c1528f73870ff Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:56:31 +0200 Subject: [PATCH 22/33] [DOC] add missing documentation --- doc/chemistryModel_noChemistry.txt | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 doc/chemistryModel_noChemistry.txt diff --git a/doc/chemistryModel_noChemistry.txt b/doc/chemistryModel_noChemistry.txt new file mode 100644 index 00000000..8ae222d6 --- /dev/null +++ b/doc/chemistryModel_noChemistry.txt @@ -0,0 +1,33 @@ +"CFDEMproject Website"_lws - "Main Page"_main :c + +:link(lws,http://www.cfdem.com) +:link(main,CFDEMcoupling_Manual.html) + +:line + +chemistryModel off command :h3 + +[Syntax:] + +Defined in "couplingProperties"_CFDEMcoupling_dicts.html#couplingProperties +dictionary. + +chemistryModel off; :pre + +[Examples:] + +chemistryModel off; :pre + +[Description:] + +The {off} model is a dummy chemistryModel model which does not perform any +chemical reaction calculations. + +[Restrictions:] + +none + +[Related commands:] + +"chemistryModel"_chemistryModel.html + From 395bc08b6caf5a42d9197a1b378a84104710e8d7 Mon Sep 17 00:00:00 2001 From: danielque Date: Wed, 18 Jul 2018 14:58:15 +0200 Subject: [PATCH 23/33] [DOC] add sphinx setup and theme files --- doc/Makefile | 189 + doc/_themes/lammps_theme/LICENSE | 20 + doc/_themes/lammps_theme/README | 3 + doc/_themes/lammps_theme/__init__.py | 17 + .../lammps_theme/static/css/badge_only.css | 226 + .../static/css/badge_only.css.map | 7 + doc/_themes/lammps_theme/static/css/theme.css | 5096 +++++++++++++++++ .../lammps_theme/static/css/theme.css.map | 7 + .../lammps_theme/static/fonts/FontAwesome.otf | Bin 0 -> 62856 bytes .../static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 47064 bytes .../lammps_theme/static/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes .../lammps_theme/static/fonts/Lato-Bold.ttf | Bin 0 -> 82368 bytes .../static/fonts/Lato-Regular.ttf | Bin 0 -> 81980 bytes .../static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 36596 bytes .../static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 36276 bytes .../static/fonts/fontawesome-webfont.eot | Bin 0 -> 38205 bytes .../static/fonts/fontawesome-webfont.svg | 414 ++ .../static/fonts/fontawesome-webfont.ttf | Bin 0 -> 80652 bytes .../static/fonts/fontawesome-webfont.woff | Bin 0 -> 44432 bytes .../lammps_theme/static/js/modernizr.min.js | 4 + doc/_themes/lammps_theme/static/js/theme.js | 113 + doc/_themes/lammps_theme/theme.conf | 12 + doc/conf.py | 291 + 23 files changed, 6399 insertions(+) create mode 100644 doc/Makefile create mode 100644 doc/_themes/lammps_theme/LICENSE create mode 100644 doc/_themes/lammps_theme/README create mode 100644 doc/_themes/lammps_theme/__init__.py create mode 100644 doc/_themes/lammps_theme/static/css/badge_only.css create mode 100644 doc/_themes/lammps_theme/static/css/badge_only.css.map create mode 100644 doc/_themes/lammps_theme/static/css/theme.css create mode 100644 doc/_themes/lammps_theme/static/css/theme.css.map create mode 100644 doc/_themes/lammps_theme/static/fonts/FontAwesome.otf create mode 100644 doc/_themes/lammps_theme/static/fonts/Inconsolata-Bold.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/Inconsolata.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/Lato-Bold.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/Lato-Regular.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/RobotoSlab-Bold.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/RobotoSlab-Regular.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/fontawesome-webfont.eot create mode 100644 doc/_themes/lammps_theme/static/fonts/fontawesome-webfont.svg create mode 100644 doc/_themes/lammps_theme/static/fonts/fontawesome-webfont.ttf create mode 100644 doc/_themes/lammps_theme/static/fonts/fontawesome-webfont.woff create mode 100644 doc/_themes/lammps_theme/static/js/modernizr.min.js create mode 100644 doc/_themes/lammps_theme/static/js/theme.js create mode 100644 doc/_themes/lammps_theme/theme.conf create mode 100644 doc/conf.py diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 00000000..f20ac01d --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,189 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +#SPHINXBUILD = /usr/share/sphinx/scripts/python3/sphinx-build +PAPER = +BUILDDIR = _build +TXT2RST = txt2rst + +SOURCES=$(wildcard *.txt) +OBJECTS=$(SOURCES:%.txt=%.rst) + +# User-friendly check for sphinx-build +ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) +$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) +endif + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " xml to make Docutils-native XML files" + @echo " pseudoxml to make pseudoxml-XML files for display purposes" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + rm -rf $(BUILDDIR)/* + +html: $(OBJECTS) + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + cp -r $(BUILDDIR)/html/* . + @echo "Copied files back to current folder" + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/LIGGGHTS.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/LIGGGHTS.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/LIGGGHTS" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/LIGGGHTS" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +latexpdfja: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through platex and dvipdfmx..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." + +xml: + $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml + @echo + @echo "Build finished. The XML files are in $(BUILDDIR)/xml." + +pseudoxml: + $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml + @echo + @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." + +%.rst : %.txt + $(TXT2RST) $< > $@ + +rst: $(OBJECTS) ; diff --git a/doc/_themes/lammps_theme/LICENSE b/doc/_themes/lammps_theme/LICENSE new file mode 100644 index 00000000..921f0738 --- /dev/null +++ b/doc/_themes/lammps_theme/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) 2013 Dave Snider + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/doc/_themes/lammps_theme/README b/doc/_themes/lammps_theme/README new file mode 100644 index 00000000..4eda2c4c --- /dev/null +++ b/doc/_themes/lammps_theme/README @@ -0,0 +1,3 @@ +This theme is derived from Dave Snider's Read-The-Docs theme for Sphinx. +https://github.com/snide/sphinx_rtd_theme +It contains minor modifications for the LAMMPS documentation. diff --git a/doc/_themes/lammps_theme/__init__.py b/doc/_themes/lammps_theme/__init__.py new file mode 100644 index 00000000..95ddc52a --- /dev/null +++ b/doc/_themes/lammps_theme/__init__.py @@ -0,0 +1,17 @@ +"""Sphinx ReadTheDocs theme. + +From https://github.com/ryan-roemer/sphinx-bootstrap-theme. + +""" +import os + +VERSION = (0, 1, 8) + +__version__ = ".".join(str(v) for v in VERSION) +__version_full__ = __version__ + + +def get_html_theme_path(): + """Return list of HTML theme paths.""" + cur_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + return cur_dir diff --git a/doc/_themes/lammps_theme/static/css/badge_only.css b/doc/_themes/lammps_theme/static/css/badge_only.css new file mode 100644 index 00000000..51d180e4 --- /dev/null +++ b/doc/_themes/lammps_theme/static/css/badge_only.css @@ -0,0 +1,226 @@ +@charset "UTF-8"; +.fa:before { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +@font-face { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + src: url("../font/fontawesome_webfont.eot"); + src: url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"), url("../font/fontawesome_webfont.woff") format("woff"), url("../font/fontawesome_webfont.ttf") format("truetype"), url("../font/fontawesome_webfont.svg#FontAwesome") format("svg"); +} +.fa:before { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa { + display: inline-block; + text-decoration: inherit; +} + +li .fa { + display: inline-block; +} +li .fa-large:before, +li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + width: 1.875em; +} + +ul.fas { + list-style-type: none; + margin-left: 2em; + text-indent: -0.8em; +} +ul.fas li .fa { + width: 0.8em; +} +ul.fas li .fa-large:before, +ul.fas li .fa-large:before { + /* 1.5 increased font size for fa-large * 1.25 width */ + vertical-align: baseline; +} + +.fa-book:before { + content: ""; +} + +.icon-book:before { + content: ""; +} + +.fa-caret-down:before { + content: ""; +} + +.icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.icon-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.icon-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.icon-caret-right:before { + content: ""; +} + +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } + + img { + width: 100%; + height: auto; + } +} + +/*# sourceMappingURL=badge_only.css.map */ diff --git a/doc/_themes/lammps_theme/static/css/badge_only.css.map b/doc/_themes/lammps_theme/static/css/badge_only.css.map new file mode 100644 index 00000000..aeb56ddb --- /dev/null +++ b/doc/_themes/lammps_theme/static/css/badge_only.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/bourbon/dist/css3/_font-face.scss","../../../sass/_theme_badge_fa.sass","../../../sass/_theme_badge.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss"], +"names": [], +"file": "badge_only.css" +} diff --git a/doc/_themes/lammps_theme/static/css/theme.css b/doc/_themes/lammps_theme/static/css/theme.css new file mode 100644 index 00000000..909adec4 --- /dev/null +++ b/doc/_themes/lammps_theme/static/css/theme.css @@ -0,0 +1,5096 @@ +@charset "UTF-8"; +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { + display: block; +} + +audio, canvas, video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +[hidden] { + display: none; +} + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:hover, a:active { + outline: 0; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, strong { + font-weight: bold; +} + +blockquote { + margin: 0; +} + +dfn { + font-style: italic; +} + +ins { + background: #ff9; + color: #000; + text-decoration: none; +} + +mark { + background: #ff0; + color: #000; + font-style: italic; + font-weight: bold; +} + +pre, code, .rst-content tt, .rst-content code, kbd, samp { + font-family: monospace, serif; + _font-family: "courier new", monospace; + font-size: 1em; +} + +pre { + white-space: pre; +} + +q { + quotes: none; +} + +q:before, q:after { + content: ""; + content: none; +} + +small { + font-size: 85%; +} + +sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +ul, ol, dl { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + +li { + list-style: none; +} + +dd { + margin: 0; +} + +img { + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; + max-width: 100%; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +form { + margin: 0; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +label { + cursor: pointer; +} + +legend { + border: 0; + *margin-left: -7px; + padding: 0; + white-space: normal; +} + +button, input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +button, input { + line-height: normal; +} + +button, input[type="button"], input[type="reset"], input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; + *overflow: visible; +} + +button[disabled], input[disabled] { + cursor: default; +} + +input[type="checkbox"], input[type="radio"] { + box-sizing: border-box; + padding: 0; + *width: 13px; + *height: 13px; +} + +input[type="search"] { + -webkit-appearance: textfield; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} + +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +textarea { + overflow: auto; + vertical-align: top; + resize: vertical; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td { + vertical-align: top; +} + +.chromeframe { + margin: 0.2em 0; + background: #ccc; + color: black; + padding: 0.2em 0; +} + +.ir { + display: block; + border: 0; + text-indent: -999em; + overflow: hidden; + background-color: transparent; + background-repeat: no-repeat; + text-align: left; + direction: ltr; + *line-height: 0; +} + +.ir br { + display: none; +} + +.hidden { + display: none !important; + visibility: hidden; +} + +.visuallyhidden { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} + +.invisible { + visibility: hidden; +} + +.relative { + position: relative; +} + +big, small { + font-size: 100%; +} + +@media print { + html, body, section { + background: none !important; + } + + * { + box-shadow: none !important; + text-shadow: none !important; + filter: none !important; + -ms-filter: none !important; + } + + a, a:visited { + text-decoration: underline; + } + + .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; + } + + pre, blockquote { + page-break-inside: avoid; + } + + thead { + display: table-header-group; + } + + tr, img { + page-break-inside: avoid; + } + + img { + max-width: 100% !important; + } + + @page { + margin: 0.5cm; + } + p, h2, .rst-content .toctree-wrapper p.caption, h3 { + orphans: 3; + widows: 3; + } + + h2, .rst-content .toctree-wrapper p.caption, h3 { + page-break-after: avoid; + } +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo, .btn, input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"], select, textarea, .wy-menu-vertical li.on a, .wy-menu-vertical li.current > a, .wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a, .wy-nav-top a { + -webkit-font-smoothing: antialiased; +} + +.clearfix { + *zoom: 1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} + +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.eot?v=4.2.0"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* makes the font 33% larger relative to the icon container */ +.fa-lg { + font-size: 1.33333em; + line-height: 0.75em; + vertical-align: -15%; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-fw { + width: 1.28571em; + text-align: center; +} + +.fa-ul { + padding-left: 0; + margin-left: 2.14286em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + position: absolute; + left: -2.14286em; + width: 2.14286em; + top: 0.14286em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714em; +} + +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eee; + border-radius: .1em; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.fa.pull-left, .wy-menu-vertical li span.pull-left.toctree-expand, .wy-menu-vertical li.on a span.pull-left.toctree-expand, .wy-menu-vertical li.current > a span.pull-left.toctree-expand, .rst-content .pull-left.admonition-title, .rst-content h1 .pull-left.headerlink, .rst-content h2 .pull-left.headerlink, .rst-content h3 .pull-left.headerlink, .rst-content h4 .pull-left.headerlink, .rst-content h5 .pull-left.headerlink, .rst-content h6 .pull-left.headerlink, .rst-content dl dt .pull-left.headerlink, .rst-content p.caption .pull-left.headerlink, .rst-content tt.download span.pull-left:first-child, .rst-content code.download span.pull-left:first-child, .pull-left.icon { + margin-right: .3em; +} +.fa.pull-right, .wy-menu-vertical li span.pull-right.toctree-expand, .wy-menu-vertical li.on a span.pull-right.toctree-expand, .wy-menu-vertical li.current > a span.pull-right.toctree-expand, .rst-content .pull-right.admonition-title, .rst-content h1 .pull-right.headerlink, .rst-content h2 .pull-right.headerlink, .rst-content h3 .pull-right.headerlink, .rst-content h4 .pull-right.headerlink, .rst-content h5 .pull-right.headerlink, .rst-content h6 .pull-right.headerlink, .rst-content dl dt .pull-right.headerlink, .rst-content p.caption .pull-right.headerlink, .rst-content tt.download span.pull-right:first-child, .rst-content code.download span.pull-right:first-child, .pull-right.icon { + margin-left: .3em; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} + +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} + +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} + +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0); + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} + +.fa-flip-vertical { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} + +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} + +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} + +.fa-stack-1x, .fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} + +.fa-stack-1x { + line-height: inherit; +} + +.fa-stack-2x { + font-size: 2em; +} + +.fa-inverse { + color: #fff; +} + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.fa-glass:before { + content: ""; +} + +.fa-music:before { + content: ""; +} + +.fa-search:before, .icon-search:before { + content: ""; +} + +.fa-envelope-o:before { + content: ""; +} + +.fa-heart:before { + content: ""; +} + +.fa-star:before { + content: ""; +} + +.fa-star-o:before { + content: ""; +} + +.fa-user:before { + content: ""; +} + +.fa-film:before { + content: ""; +} + +.fa-th-large:before { + content: ""; +} + +.fa-th:before { + content: ""; +} + +.fa-th-list:before { + content: ""; +} + +.fa-check:before { + content: ""; +} + +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: ""; +} + +.fa-search-plus:before { + content: ""; +} + +.fa-search-minus:before { + content: ""; +} + +.fa-power-off:before { + content: ""; +} + +.fa-signal:before { + content: ""; +} + +.fa-gear:before, +.fa-cog:before { + content: ""; +} + +.fa-trash-o:before { + content: ""; +} + +.fa-home:before, .icon-home:before { + content: ""; +} + +.fa-file-o:before { + content: ""; +} + +.fa-clock-o:before { + content: ""; +} + +.fa-road:before { + content: ""; +} + +.fa-download:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + content: ""; +} + +.fa-arrow-circle-o-down:before { + content: ""; +} + +.fa-arrow-circle-o-up:before { + content: ""; +} + +.fa-inbox:before { + content: ""; +} + +.fa-play-circle-o:before { + content: ""; +} + +.fa-rotate-right:before, +.fa-repeat:before { + content: ""; +} + +.fa-refresh:before { + content: ""; +} + +.fa-list-alt:before { + content: ""; +} + +.fa-lock:before { + content: ""; +} + +.fa-flag:before { + content: ""; +} + +.fa-headphones:before { + content: ""; +} + +.fa-volume-off:before { + content: ""; +} + +.fa-volume-down:before { + content: ""; +} + +.fa-volume-up:before { + content: ""; +} + +.fa-qrcode:before { + content: ""; +} + +.fa-barcode:before { + content: ""; +} + +.fa-tag:before { + content: ""; +} + +.fa-tags:before { + content: ""; +} + +.fa-book:before, .icon-book:before { + content: ""; +} + +.fa-bookmark:before { + content: ""; +} + +.fa-print:before { + content: ""; +} + +.fa-camera:before { + content: ""; +} + +.fa-font:before { + content: ""; +} + +.fa-bold:before { + content: ""; +} + +.fa-italic:before { + content: ""; +} + +.fa-text-height:before { + content: ""; +} + +.fa-text-width:before { + content: ""; +} + +.fa-align-left:before { + content: ""; +} + +.fa-align-center:before { + content: ""; +} + +.fa-align-right:before { + content: ""; +} + +.fa-align-justify:before { + content: ""; +} + +.fa-list:before { + content: ""; +} + +.fa-dedent:before, +.fa-outdent:before { + content: ""; +} + +.fa-indent:before { + content: ""; +} + +.fa-video-camera:before { + content: ""; +} + +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: ""; +} + +.fa-pencil:before { + content: ""; +} + +.fa-map-marker:before { + content: ""; +} + +.fa-adjust:before { + content: ""; +} + +.fa-tint:before { + content: ""; +} + +.fa-edit:before, +.fa-pencil-square-o:before { + content: ""; +} + +.fa-share-square-o:before { + content: ""; +} + +.fa-check-square-o:before { + content: ""; +} + +.fa-arrows:before { + content: ""; +} + +.fa-step-backward:before { + content: ""; +} + +.fa-fast-backward:before { + content: ""; +} + +.fa-backward:before { + content: ""; +} + +.fa-play:before { + content: ""; +} + +.fa-pause:before { + content: ""; +} + +.fa-stop:before { + content: ""; +} + +.fa-forward:before { + content: ""; +} + +.fa-fast-forward:before { + content: ""; +} + +.fa-step-forward:before { + content: ""; +} + +.fa-eject:before { + content: ""; +} + +.fa-chevron-left:before { + content: ""; +} + +.fa-chevron-right:before { + content: ""; +} + +.fa-plus-circle:before { + content: ""; +} + +.fa-minus-circle:before { + content: ""; +} + +.fa-times-circle:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before { + content: ""; +} + +.fa-check-circle:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before { + content: ""; +} + +.fa-question-circle:before { + content: ""; +} + +.fa-info-circle:before { + content: ""; +} + +.fa-crosshairs:before { + content: ""; +} + +.fa-times-circle-o:before { + content: ""; +} + +.fa-check-circle-o:before { + content: ""; +} + +.fa-ban:before { + content: ""; +} + +.fa-arrow-left:before { + content: ""; +} + +.fa-arrow-right:before { + content: ""; +} + +.fa-arrow-up:before { + content: ""; +} + +.fa-arrow-down:before { + content: ""; +} + +.fa-mail-forward:before, +.fa-share:before { + content: ""; +} + +.fa-expand:before { + content: ""; +} + +.fa-compress:before { + content: ""; +} + +.fa-plus:before { + content: ""; +} + +.fa-minus:before { + content: ""; +} + +.fa-asterisk:before { + content: ""; +} + +.fa-exclamation-circle:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before, .rst-content .admonition-title:before { + content: ""; +} + +.fa-gift:before { + content: ""; +} + +.fa-leaf:before { + content: ""; +} + +.fa-fire:before, .icon-fire:before { + content: ""; +} + +.fa-eye:before { + content: ""; +} + +.fa-eye-slash:before { + content: ""; +} + +.fa-warning:before, +.fa-exclamation-triangle:before { + content: ""; +} + +.fa-plane:before { + content: ""; +} + +.fa-calendar:before { + content: ""; +} + +.fa-random:before { + content: ""; +} + +.fa-comment:before { + content: ""; +} + +.fa-magnet:before { + content: ""; +} + +.fa-chevron-up:before { + content: ""; +} + +.fa-chevron-down:before { + content: ""; +} + +.fa-retweet:before { + content: ""; +} + +.fa-shopping-cart:before { + content: ""; +} + +.fa-folder:before { + content: ""; +} + +.fa-folder-open:before { + content: ""; +} + +.fa-arrows-v:before { + content: ""; +} + +.fa-arrows-h:before { + content: ""; +} + +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: ""; +} + +.fa-twitter-square:before { + content: ""; +} + +.fa-facebook-square:before { + content: ""; +} + +.fa-camera-retro:before { + content: ""; +} + +.fa-key:before { + content: ""; +} + +.fa-gears:before, +.fa-cogs:before { + content: ""; +} + +.fa-comments:before { + content: ""; +} + +.fa-thumbs-o-up:before { + content: ""; +} + +.fa-thumbs-o-down:before { + content: ""; +} + +.fa-star-half:before { + content: ""; +} + +.fa-heart-o:before { + content: ""; +} + +.fa-sign-out:before { + content: ""; +} + +.fa-linkedin-square:before { + content: ""; +} + +.fa-thumb-tack:before { + content: ""; +} + +.fa-external-link:before { + content: ""; +} + +.fa-sign-in:before { + content: ""; +} + +.fa-trophy:before { + content: ""; +} + +.fa-github-square:before { + content: ""; +} + +.fa-upload:before { + content: ""; +} + +.fa-lemon-o:before { + content: ""; +} + +.fa-phone:before { + content: ""; +} + +.fa-square-o:before { + content: ""; +} + +.fa-bookmark-o:before { + content: ""; +} + +.fa-phone-square:before { + content: ""; +} + +.fa-twitter:before { + content: ""; +} + +.fa-facebook:before { + content: ""; +} + +.fa-github:before, .icon-github:before { + content: ""; +} + +.fa-unlock:before { + content: ""; +} + +.fa-credit-card:before { + content: ""; +} + +.fa-rss:before { + content: ""; +} + +.fa-hdd-o:before { + content: ""; +} + +.fa-bullhorn:before { + content: ""; +} + +.fa-bell:before { + content: ""; +} + +.fa-certificate:before { + content: ""; +} + +.fa-hand-o-right:before { + content: ""; +} + +.fa-hand-o-left:before { + content: ""; +} + +.fa-hand-o-up:before { + content: ""; +} + +.fa-hand-o-down:before { + content: ""; +} + +.fa-arrow-circle-left:before, .icon-circle-arrow-left:before { + content: ""; +} + +.fa-arrow-circle-right:before, .icon-circle-arrow-right:before { + content: ""; +} + +.fa-arrow-circle-up:before { + content: ""; +} + +.fa-arrow-circle-down:before { + content: ""; +} + +.fa-globe:before { + content: ""; +} + +.fa-wrench:before { + content: ""; +} + +.fa-tasks:before { + content: ""; +} + +.fa-filter:before { + content: ""; +} + +.fa-briefcase:before { + content: ""; +} + +.fa-arrows-alt:before { + content: ""; +} + +.fa-group:before, +.fa-users:before { + content: ""; +} + +.fa-chain:before, +.fa-link:before, +.icon-link:before { + content: ""; +} + +.fa-cloud:before { + content: ""; +} + +.fa-flask:before { + content: ""; +} + +.fa-cut:before, +.fa-scissors:before { + content: ""; +} + +.fa-copy:before, +.fa-files-o:before { + content: ""; +} + +.fa-paperclip:before { + content: ""; +} + +.fa-save:before, +.fa-floppy-o:before { + content: ""; +} + +.fa-square:before { + content: ""; +} + +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: ""; +} + +.fa-list-ul:before { + content: ""; +} + +.fa-list-ol:before { + content: ""; +} + +.fa-strikethrough:before { + content: ""; +} + +.fa-underline:before { + content: ""; +} + +.fa-table:before { + content: ""; +} + +.fa-magic:before { + content: ""; +} + +.fa-truck:before { + content: ""; +} + +.fa-pinterest:before { + content: ""; +} + +.fa-pinterest-square:before { + content: ""; +} + +.fa-google-plus-square:before { + content: ""; +} + +.fa-google-plus:before { + content: ""; +} + +.fa-money:before { + content: ""; +} + +.fa-caret-down:before, .wy-dropdown .caret:before, .icon-caret-down:before { + content: ""; +} + +.fa-caret-up:before { + content: ""; +} + +.fa-caret-left:before { + content: ""; +} + +.fa-caret-right:before { + content: ""; +} + +.fa-columns:before { + content: ""; +} + +.fa-unsorted:before, +.fa-sort:before { + content: ""; +} + +.fa-sort-down:before, +.fa-sort-desc:before { + content: ""; +} + +.fa-sort-up:before, +.fa-sort-asc:before { + content: ""; +} + +.fa-envelope:before { + content: ""; +} + +.fa-linkedin:before { + content: ""; +} + +.fa-rotate-left:before, +.fa-undo:before { + content: ""; +} + +.fa-legal:before, +.fa-gavel:before { + content: ""; +} + +.fa-dashboard:before, +.fa-tachometer:before { + content: ""; +} + +.fa-comment-o:before { + content: ""; +} + +.fa-comments-o:before { + content: ""; +} + +.fa-flash:before, +.fa-bolt:before { + content: ""; +} + +.fa-sitemap:before { + content: ""; +} + +.fa-umbrella:before { + content: ""; +} + +.fa-paste:before, +.fa-clipboard:before { + content: ""; +} + +.fa-lightbulb-o:before { + content: ""; +} + +.fa-exchange:before { + content: ""; +} + +.fa-cloud-download:before { + content: ""; +} + +.fa-cloud-upload:before { + content: ""; +} + +.fa-user-md:before { + content: ""; +} + +.fa-stethoscope:before { + content: ""; +} + +.fa-suitcase:before { + content: ""; +} + +.fa-bell-o:before { + content: ""; +} + +.fa-coffee:before { + content: ""; +} + +.fa-cutlery:before { + content: ""; +} + +.fa-file-text-o:before { + content: ""; +} + +.fa-building-o:before { + content: ""; +} + +.fa-hospital-o:before { + content: ""; +} + +.fa-ambulance:before { + content: ""; +} + +.fa-medkit:before { + content: ""; +} + +.fa-fighter-jet:before { + content: ""; +} + +.fa-beer:before { + content: ""; +} + +.fa-h-square:before { + content: ""; +} + +.fa-plus-square:before { + content: ""; +} + +.fa-angle-double-left:before { + content: ""; +} + +.fa-angle-double-right:before { + content: ""; +} + +.fa-angle-double-up:before { + content: ""; +} + +.fa-angle-double-down:before { + content: ""; +} + +.fa-angle-left:before { + content: ""; +} + +.fa-angle-right:before { + content: ""; +} + +.fa-angle-up:before { + content: ""; +} + +.fa-angle-down:before { + content: ""; +} + +.fa-desktop:before { + content: ""; +} + +.fa-laptop:before { + content: ""; +} + +.fa-tablet:before { + content: ""; +} + +.fa-mobile-phone:before, +.fa-mobile:before { + content: ""; +} + +.fa-circle-o:before { + content: ""; +} + +.fa-quote-left:before { + content: ""; +} + +.fa-quote-right:before { + content: ""; +} + +.fa-spinner:before { + content: ""; +} + +.fa-circle:before { + content: ""; +} + +.fa-mail-reply:before, +.fa-reply:before { + content: ""; +} + +.fa-github-alt:before { + content: ""; +} + +.fa-folder-o:before { + content: ""; +} + +.fa-folder-open-o:before { + content: ""; +} + +.fa-smile-o:before { + content: ""; +} + +.fa-frown-o:before { + content: ""; +} + +.fa-meh-o:before { + content: ""; +} + +.fa-gamepad:before { + content: ""; +} + +.fa-keyboard-o:before { + content: ""; +} + +.fa-flag-o:before { + content: ""; +} + +.fa-flag-checkered:before { + content: ""; +} + +.fa-terminal:before { + content: ""; +} + +.fa-code:before { + content: ""; +} + +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: ""; +} + +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: ""; +} + +.fa-location-arrow:before { + content: ""; +} + +.fa-crop:before { + content: ""; +} + +.fa-code-fork:before { + content: ""; +} + +.fa-unlink:before, +.fa-chain-broken:before { + content: ""; +} + +.fa-question:before { + content: ""; +} + +.fa-info:before { + content: ""; +} + +.fa-exclamation:before { + content: ""; +} + +.fa-superscript:before { + content: ""; +} + +.fa-subscript:before { + content: ""; +} + +.fa-eraser:before { + content: ""; +} + +.fa-puzzle-piece:before { + content: ""; +} + +.fa-microphone:before { + content: ""; +} + +.fa-microphone-slash:before { + content: ""; +} + +.fa-shield:before { + content: ""; +} + +.fa-calendar-o:before { + content: ""; +} + +.fa-fire-extinguisher:before { + content: ""; +} + +.fa-rocket:before { + content: ""; +} + +.fa-maxcdn:before { + content: ""; +} + +.fa-chevron-circle-left:before { + content: ""; +} + +.fa-chevron-circle-right:before { + content: ""; +} + +.fa-chevron-circle-up:before { + content: ""; +} + +.fa-chevron-circle-down:before { + content: ""; +} + +.fa-html5:before { + content: ""; +} + +.fa-css3:before { + content: ""; +} + +.fa-anchor:before { + content: ""; +} + +.fa-unlock-alt:before { + content: ""; +} + +.fa-bullseye:before { + content: ""; +} + +.fa-ellipsis-h:before { + content: ""; +} + +.fa-ellipsis-v:before { + content: ""; +} + +.fa-rss-square:before { + content: ""; +} + +.fa-play-circle:before { + content: ""; +} + +.fa-ticket:before { + content: ""; +} + +.fa-minus-square:before { + content: ""; +} + +.fa-minus-square-o:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before { + content: ""; +} + +.fa-level-up:before { + content: ""; +} + +.fa-level-down:before { + content: ""; +} + +.fa-check-square:before { + content: ""; +} + +.fa-pencil-square:before { + content: ""; +} + +.fa-external-link-square:before { + content: ""; +} + +.fa-share-square:before { + content: ""; +} + +.fa-compass:before { + content: ""; +} + +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: ""; +} + +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: ""; +} + +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: ""; +} + +.fa-euro:before, +.fa-eur:before { + content: ""; +} + +.fa-gbp:before { + content: ""; +} + +.fa-dollar:before, +.fa-usd:before { + content: ""; +} + +.fa-rupee:before, +.fa-inr:before { + content: ""; +} + +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: ""; +} + +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: ""; +} + +.fa-won:before, +.fa-krw:before { + content: ""; +} + +.fa-bitcoin:before, +.fa-btc:before { + content: ""; +} + +.fa-file:before { + content: ""; +} + +.fa-file-text:before { + content: ""; +} + +.fa-sort-alpha-asc:before { + content: ""; +} + +.fa-sort-alpha-desc:before { + content: ""; +} + +.fa-sort-amount-asc:before { + content: ""; +} + +.fa-sort-amount-desc:before { + content: ""; +} + +.fa-sort-numeric-asc:before { + content: ""; +} + +.fa-sort-numeric-desc:before { + content: ""; +} + +.fa-thumbs-up:before { + content: ""; +} + +.fa-thumbs-down:before { + content: ""; +} + +.fa-youtube-square:before { + content: ""; +} + +.fa-youtube:before { + content: ""; +} + +.fa-xing:before { + content: ""; +} + +.fa-xing-square:before { + content: ""; +} + +.fa-youtube-play:before { + content: ""; +} + +.fa-dropbox:before { + content: ""; +} + +.fa-stack-overflow:before { + content: ""; +} + +.fa-instagram:before { + content: ""; +} + +.fa-flickr:before { + content: ""; +} + +.fa-adn:before { + content: ""; +} + +.fa-bitbucket:before, .icon-bitbucket:before { + content: ""; +} + +.fa-bitbucket-square:before { + content: ""; +} + +.fa-tumblr:before { + content: ""; +} + +.fa-tumblr-square:before { + content: ""; +} + +.fa-long-arrow-down:before { + content: ""; +} + +.fa-long-arrow-up:before { + content: ""; +} + +.fa-long-arrow-left:before { + content: ""; +} + +.fa-long-arrow-right:before { + content: ""; +} + +.fa-apple:before { + content: ""; +} + +.fa-windows:before { + content: ""; +} + +.fa-android:before { + content: ""; +} + +.fa-linux:before { + content: ""; +} + +.fa-dribbble:before { + content: ""; +} + +.fa-skype:before { + content: ""; +} + +.fa-foursquare:before { + content: ""; +} + +.fa-trello:before { + content: ""; +} + +.fa-female:before { + content: ""; +} + +.fa-male:before { + content: ""; +} + +.fa-gittip:before { + content: ""; +} + +.fa-sun-o:before { + content: ""; +} + +.fa-moon-o:before { + content: ""; +} + +.fa-archive:before { + content: ""; +} + +.fa-bug:before { + content: ""; +} + +.fa-vk:before { + content: ""; +} + +.fa-weibo:before { + content: ""; +} + +.fa-renren:before { + content: ""; +} + +.fa-pagelines:before { + content: ""; +} + +.fa-stack-exchange:before { + content: ""; +} + +.fa-arrow-circle-o-right:before { + content: ""; +} + +.fa-arrow-circle-o-left:before { + content: ""; +} + +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: ""; +} + +.fa-dot-circle-o:before { + content: ""; +} + +.fa-wheelchair:before { + content: ""; +} + +.fa-vimeo-square:before { + content: ""; +} + +.fa-turkish-lira:before, +.fa-try:before { + content: ""; +} + +.fa-plus-square-o:before, .wy-menu-vertical li span.toctree-expand:before { + content: ""; +} + +.fa-space-shuttle:before { + content: ""; +} + +.fa-slack:before { + content: ""; +} + +.fa-envelope-square:before { + content: ""; +} + +.fa-wordpress:before { + content: ""; +} + +.fa-openid:before { + content: ""; +} + +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: ""; +} + +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: ""; +} + +.fa-yahoo:before { + content: ""; +} + +.fa-google:before { + content: ""; +} + +.fa-reddit:before { + content: ""; +} + +.fa-reddit-square:before { + content: ""; +} + +.fa-stumbleupon-circle:before { + content: ""; +} + +.fa-stumbleupon:before { + content: ""; +} + +.fa-delicious:before { + content: ""; +} + +.fa-digg:before { + content: ""; +} + +.fa-pied-piper:before { + content: ""; +} + +.fa-pied-piper-alt:before { + content: ""; +} + +.fa-drupal:before { + content: ""; +} + +.fa-joomla:before { + content: ""; +} + +.fa-language:before { + content: ""; +} + +.fa-fax:before { + content: ""; +} + +.fa-building:before { + content: ""; +} + +.fa-child:before { + content: ""; +} + +.fa-paw:before { + content: ""; +} + +.fa-spoon:before { + content: ""; +} + +.fa-cube:before { + content: ""; +} + +.fa-cubes:before { + content: ""; +} + +.fa-behance:before { + content: ""; +} + +.fa-behance-square:before { + content: ""; +} + +.fa-steam:before { + content: ""; +} + +.fa-steam-square:before { + content: ""; +} + +.fa-recycle:before { + content: ""; +} + +.fa-automobile:before, +.fa-car:before { + content: ""; +} + +.fa-cab:before, +.fa-taxi:before { + content: ""; +} + +.fa-tree:before { + content: ""; +} + +.fa-spotify:before { + content: ""; +} + +.fa-deviantart:before { + content: ""; +} + +.fa-soundcloud:before { + content: ""; +} + +.fa-database:before { + content: ""; +} + +.fa-file-pdf-o:before { + content: ""; +} + +.fa-file-word-o:before { + content: ""; +} + +.fa-file-excel-o:before { + content: ""; +} + +.fa-file-powerpoint-o:before { + content: ""; +} + +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: ""; +} + +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: ""; +} + +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: ""; +} + +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: ""; +} + +.fa-file-code-o:before { + content: ""; +} + +.fa-vine:before { + content: ""; +} + +.fa-codepen:before { + content: ""; +} + +.fa-jsfiddle:before { + content: ""; +} + +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: ""; +} + +.fa-circle-o-notch:before { + content: ""; +} + +.fa-ra:before, +.fa-rebel:before { + content: ""; +} + +.fa-ge:before, +.fa-empire:before { + content: ""; +} + +.fa-git-square:before { + content: ""; +} + +.fa-git:before { + content: ""; +} + +.fa-hacker-news:before { + content: ""; +} + +.fa-tencent-weibo:before { + content: ""; +} + +.fa-qq:before { + content: ""; +} + +.fa-wechat:before, +.fa-weixin:before { + content: ""; +} + +.fa-send:before, +.fa-paper-plane:before { + content: ""; +} + +.fa-send-o:before, +.fa-paper-plane-o:before { + content: ""; +} + +.fa-history:before { + content: ""; +} + +.fa-circle-thin:before { + content: ""; +} + +.fa-header:before { + content: ""; +} + +.fa-paragraph:before { + content: ""; +} + +.fa-sliders:before { + content: ""; +} + +.fa-share-alt:before { + content: ""; +} + +.fa-share-alt-square:before { + content: ""; +} + +.fa-bomb:before { + content: ""; +} + +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: ""; +} + +.fa-tty:before { + content: ""; +} + +.fa-binoculars:before { + content: ""; +} + +.fa-plug:before { + content: ""; +} + +.fa-slideshare:before { + content: ""; +} + +.fa-twitch:before { + content: ""; +} + +.fa-yelp:before { + content: ""; +} + +.fa-newspaper-o:before { + content: ""; +} + +.fa-wifi:before { + content: ""; +} + +.fa-calculator:before { + content: ""; +} + +.fa-paypal:before { + content: ""; +} + +.fa-google-wallet:before { + content: ""; +} + +.fa-cc-visa:before { + content: ""; +} + +.fa-cc-mastercard:before { + content: ""; +} + +.fa-cc-discover:before { + content: ""; +} + +.fa-cc-amex:before { + content: ""; +} + +.fa-cc-paypal:before { + content: ""; +} + +.fa-cc-stripe:before { + content: ""; +} + +.fa-bell-slash:before { + content: ""; +} + +.fa-bell-slash-o:before { + content: ""; +} + +.fa-trash:before { + content: ""; +} + +.fa-copyright:before { + content: ""; +} + +.fa-at:before { + content: ""; +} + +.fa-eyedropper:before { + content: ""; +} + +.fa-paint-brush:before { + content: ""; +} + +.fa-birthday-cake:before { + content: ""; +} + +.fa-area-chart:before { + content: ""; +} + +.fa-pie-chart:before { + content: ""; +} + +.fa-line-chart:before { + content: ""; +} + +.fa-lastfm:before { + content: ""; +} + +.fa-lastfm-square:before { + content: ""; +} + +.fa-toggle-off:before { + content: ""; +} + +.fa-toggle-on:before { + content: ""; +} + +.fa-bicycle:before { + content: ""; +} + +.fa-bus:before { + content: ""; +} + +.fa-ioxhost:before { + content: ""; +} + +.fa-angellist:before { + content: ""; +} + +.fa-cc:before { + content: ""; +} + +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: ""; +} + +.fa-meanpath:before { + content: ""; +} + +.fa, .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, .rst-content .admonition-title, .rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink, .rst-content tt.download span:first-child, .rst-content code.download span:first-child, .icon, .wy-dropdown .caret, .wy-inline-validate.wy-inline-validate-success .wy-input-context, .wy-inline-validate.wy-inline-validate-danger .wy-input-context, .wy-inline-validate.wy-inline-validate-warning .wy-input-context, .wy-inline-validate.wy-inline-validate-info .wy-input-context { + font-family: inherit; +} +.fa:before, .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li.on a span.toctree-expand:before, .wy-menu-vertical li.current > a span.toctree-expand:before, .rst-content .admonition-title:before, .rst-content h1 .headerlink:before, .rst-content h2 .headerlink:before, .rst-content h3 .headerlink:before, .rst-content h4 .headerlink:before, .rst-content h5 .headerlink:before, .rst-content h6 .headerlink:before, .rst-content dl dt .headerlink:before, .rst-content p.caption .headerlink:before, .rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before, .icon:before, .wy-dropdown .caret:before, .wy-inline-validate.wy-inline-validate-success .wy-input-context:before, .wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, .wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, .wy-inline-validate.wy-inline-validate-info .wy-input-context:before { + font-family: "FontAwesome"; + display: inline-block; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit; +} + +a .fa, a .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li a span.toctree-expand, .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand, a .rst-content .admonition-title, .rst-content a .admonition-title, a .rst-content h1 .headerlink, .rst-content h1 a .headerlink, a .rst-content h2 .headerlink, .rst-content h2 a .headerlink, a .rst-content h3 .headerlink, .rst-content h3 a .headerlink, a .rst-content h4 .headerlink, .rst-content h4 a .headerlink, a .rst-content h5 .headerlink, .rst-content h5 a .headerlink, a .rst-content h6 .headerlink, .rst-content h6 a .headerlink, a .rst-content dl dt .headerlink, .rst-content dl dt a .headerlink, a .rst-content p.caption .headerlink, .rst-content p.caption a .headerlink, a .rst-content tt.download span:first-child, .rst-content tt.download a span:first-child, a .rst-content code.download span:first-child, .rst-content code.download a span:first-child, a .icon { + display: inline-block; + text-decoration: inherit; +} + +.btn .fa, .btn .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .btn span.toctree-expand, .btn .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .btn span.toctree-expand, .btn .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .btn span.toctree-expand, .btn .rst-content .admonition-title, .rst-content .btn .admonition-title, .btn .rst-content h1 .headerlink, .rst-content h1 .btn .headerlink, .btn .rst-content h2 .headerlink, .rst-content h2 .btn .headerlink, .btn .rst-content h3 .headerlink, .rst-content h3 .btn .headerlink, .btn .rst-content h4 .headerlink, .rst-content h4 .btn .headerlink, .btn .rst-content h5 .headerlink, .rst-content h5 .btn .headerlink, .btn .rst-content h6 .headerlink, .rst-content h6 .btn .headerlink, .btn .rst-content dl dt .headerlink, .rst-content dl dt .btn .headerlink, .btn .rst-content p.caption .headerlink, .rst-content p.caption .btn .headerlink, .btn .rst-content tt.download span:first-child, .rst-content tt.download .btn span:first-child, .btn .rst-content code.download span:first-child, .rst-content code.download .btn span:first-child, .btn .icon, .nav .fa, .nav .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .nav span.toctree-expand, .nav .wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.on a .nav span.toctree-expand, .nav .wy-menu-vertical li.current > a span.toctree-expand, .wy-menu-vertical li.current > a .nav span.toctree-expand, .nav .rst-content .admonition-title, .rst-content .nav .admonition-title, .nav .rst-content h1 .headerlink, .rst-content h1 .nav .headerlink, .nav .rst-content h2 .headerlink, .rst-content h2 .nav .headerlink, .nav .rst-content h3 .headerlink, .rst-content h3 .nav .headerlink, .nav .rst-content h4 .headerlink, .rst-content h4 .nav .headerlink, .nav .rst-content h5 .headerlink, .rst-content h5 .nav .headerlink, .nav .rst-content h6 .headerlink, .rst-content h6 .nav .headerlink, .nav .rst-content dl dt .headerlink, .rst-content dl dt .nav .headerlink, .nav .rst-content p.caption .headerlink, .rst-content p.caption .nav .headerlink, .nav .rst-content tt.download span:first-child, .rst-content tt.download .nav span:first-child, .nav .rst-content code.download span:first-child, .rst-content code.download .nav span:first-child, .nav .icon { + display: inline; +} +.btn .fa.fa-large, .btn .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .btn span.fa-large.toctree-expand, .btn .rst-content .fa-large.admonition-title, .rst-content .btn .fa-large.admonition-title, .btn .rst-content h1 .fa-large.headerlink, .rst-content h1 .btn .fa-large.headerlink, .btn .rst-content h2 .fa-large.headerlink, .rst-content h2 .btn .fa-large.headerlink, .btn .rst-content h3 .fa-large.headerlink, .rst-content h3 .btn .fa-large.headerlink, .btn .rst-content h4 .fa-large.headerlink, .rst-content h4 .btn .fa-large.headerlink, .btn .rst-content h5 .fa-large.headerlink, .rst-content h5 .btn .fa-large.headerlink, .btn .rst-content h6 .fa-large.headerlink, .rst-content h6 .btn .fa-large.headerlink, .btn .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .btn .fa-large.headerlink, .btn .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .btn .fa-large.headerlink, .btn .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .btn span.fa-large:first-child, .btn .rst-content code.download span.fa-large:first-child, .rst-content code.download .btn span.fa-large:first-child, .btn .fa-large.icon, .nav .fa.fa-large, .nav .wy-menu-vertical li span.fa-large.toctree-expand, .wy-menu-vertical li .nav span.fa-large.toctree-expand, .nav .rst-content .fa-large.admonition-title, .rst-content .nav .fa-large.admonition-title, .nav .rst-content h1 .fa-large.headerlink, .rst-content h1 .nav .fa-large.headerlink, .nav .rst-content h2 .fa-large.headerlink, .rst-content h2 .nav .fa-large.headerlink, .nav .rst-content h3 .fa-large.headerlink, .rst-content h3 .nav .fa-large.headerlink, .nav .rst-content h4 .fa-large.headerlink, .rst-content h4 .nav .fa-large.headerlink, .nav .rst-content h5 .fa-large.headerlink, .rst-content h5 .nav .fa-large.headerlink, .nav .rst-content h6 .fa-large.headerlink, .rst-content h6 .nav .fa-large.headerlink, .nav .rst-content dl dt .fa-large.headerlink, .rst-content dl dt .nav .fa-large.headerlink, .nav .rst-content p.caption .fa-large.headerlink, .rst-content p.caption .nav .fa-large.headerlink, .nav .rst-content tt.download span.fa-large:first-child, .rst-content tt.download .nav span.fa-large:first-child, .nav .rst-content code.download span.fa-large:first-child, .rst-content code.download .nav span.fa-large:first-child, .nav .fa-large.icon { + line-height: 0.9em; +} +.btn .fa.fa-spin, .btn .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .btn span.fa-spin.toctree-expand, .btn .rst-content .fa-spin.admonition-title, .rst-content .btn .fa-spin.admonition-title, .btn .rst-content h1 .fa-spin.headerlink, .rst-content h1 .btn .fa-spin.headerlink, .btn .rst-content h2 .fa-spin.headerlink, .rst-content h2 .btn .fa-spin.headerlink, .btn .rst-content h3 .fa-spin.headerlink, .rst-content h3 .btn .fa-spin.headerlink, .btn .rst-content h4 .fa-spin.headerlink, .rst-content h4 .btn .fa-spin.headerlink, .btn .rst-content h5 .fa-spin.headerlink, .rst-content h5 .btn .fa-spin.headerlink, .btn .rst-content h6 .fa-spin.headerlink, .rst-content h6 .btn .fa-spin.headerlink, .btn .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .btn .fa-spin.headerlink, .btn .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .btn .fa-spin.headerlink, .btn .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .btn span.fa-spin:first-child, .btn .rst-content code.download span.fa-spin:first-child, .rst-content code.download .btn span.fa-spin:first-child, .btn .fa-spin.icon, .nav .fa.fa-spin, .nav .wy-menu-vertical li span.fa-spin.toctree-expand, .wy-menu-vertical li .nav span.fa-spin.toctree-expand, .nav .rst-content .fa-spin.admonition-title, .rst-content .nav .fa-spin.admonition-title, .nav .rst-content h1 .fa-spin.headerlink, .rst-content h1 .nav .fa-spin.headerlink, .nav .rst-content h2 .fa-spin.headerlink, .rst-content h2 .nav .fa-spin.headerlink, .nav .rst-content h3 .fa-spin.headerlink, .rst-content h3 .nav .fa-spin.headerlink, .nav .rst-content h4 .fa-spin.headerlink, .rst-content h4 .nav .fa-spin.headerlink, .nav .rst-content h5 .fa-spin.headerlink, .rst-content h5 .nav .fa-spin.headerlink, .nav .rst-content h6 .fa-spin.headerlink, .rst-content h6 .nav .fa-spin.headerlink, .nav .rst-content dl dt .fa-spin.headerlink, .rst-content dl dt .nav .fa-spin.headerlink, .nav .rst-content p.caption .fa-spin.headerlink, .rst-content p.caption .nav .fa-spin.headerlink, .nav .rst-content tt.download span.fa-spin:first-child, .rst-content tt.download .nav span.fa-spin:first-child, .nav .rst-content code.download span.fa-spin:first-child, .rst-content code.download .nav span.fa-spin:first-child, .nav .fa-spin.icon { + display: inline-block; +} + +.btn.fa:before, .wy-menu-vertical li span.btn.toctree-expand:before, .rst-content .btn.admonition-title:before, .rst-content h1 .btn.headerlink:before, .rst-content h2 .btn.headerlink:before, .rst-content h3 .btn.headerlink:before, .rst-content h4 .btn.headerlink:before, .rst-content h5 .btn.headerlink:before, .rst-content h6 .btn.headerlink:before, .rst-content dl dt .btn.headerlink:before, .rst-content p.caption .btn.headerlink:before, .rst-content tt.download span.btn:first-child:before, .rst-content code.download span.btn:first-child:before, .btn.icon:before { + opacity: 0.5; + -webkit-transition: opacity 0.05s ease-in; + -moz-transition: opacity 0.05s ease-in; + transition: opacity 0.05s ease-in; +} + +.btn.fa:hover:before, .wy-menu-vertical li span.btn.toctree-expand:hover:before, .rst-content .btn.admonition-title:hover:before, .rst-content h1 .btn.headerlink:hover:before, .rst-content h2 .btn.headerlink:hover:before, .rst-content h3 .btn.headerlink:hover:before, .rst-content h4 .btn.headerlink:hover:before, .rst-content h5 .btn.headerlink:hover:before, .rst-content h6 .btn.headerlink:hover:before, .rst-content dl dt .btn.headerlink:hover:before, .rst-content p.caption .btn.headerlink:hover:before, .rst-content tt.download span.btn:first-child:hover:before, .rst-content code.download span.btn:first-child:hover:before, .btn.icon:hover:before { + opacity: 1; +} + +.btn-mini .fa:before, .btn-mini .wy-menu-vertical li span.toctree-expand:before, .wy-menu-vertical li .btn-mini span.toctree-expand:before, .btn-mini .rst-content .admonition-title:before, .rst-content .btn-mini .admonition-title:before, .btn-mini .rst-content h1 .headerlink:before, .rst-content h1 .btn-mini .headerlink:before, .btn-mini .rst-content h2 .headerlink:before, .rst-content h2 .btn-mini .headerlink:before, .btn-mini .rst-content h3 .headerlink:before, .rst-content h3 .btn-mini .headerlink:before, .btn-mini .rst-content h4 .headerlink:before, .rst-content h4 .btn-mini .headerlink:before, .btn-mini .rst-content h5 .headerlink:before, .rst-content h5 .btn-mini .headerlink:before, .btn-mini .rst-content h6 .headerlink:before, .rst-content h6 .btn-mini .headerlink:before, .btn-mini .rst-content dl dt .headerlink:before, .rst-content dl dt .btn-mini .headerlink:before, .btn-mini .rst-content p.caption .headerlink:before, .rst-content p.caption .btn-mini .headerlink:before, .btn-mini .rst-content tt.download span:first-child:before, .rst-content tt.download .btn-mini span:first-child:before, .btn-mini .rst-content code.download span:first-child:before, .rst-content code.download .btn-mini span:first-child:before, .btn-mini .icon:before { + font-size: 14px; + vertical-align: -15%; +} + +.wy-alert, .rst-content .note, .rst-content .attention, .rst-content .caution, .rst-content .danger, .rst-content .error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .warning, .rst-content .seealso, .rst-content .admonition-todo { + padding: 12px; + line-height: 24px; + margin-bottom: 24px; + background: #e7f2fa; +} + +.wy-alert-title, .rst-content .admonition-title { + color: #fff; + font-weight: bold; + display: block; + color: #fff; + background: #6ab0de; + margin: -12px; + padding: 6px 12px; + margin-bottom: 12px; +} + +.wy-alert.wy-alert-danger, .rst-content .wy-alert-danger.note, .rst-content .wy-alert-danger.attention, .rst-content .wy-alert-danger.caution, .rst-content .danger, .rst-content .error, .rst-content .wy-alert-danger.hint, .rst-content .wy-alert-danger.important, .rst-content .wy-alert-danger.tip, .rst-content .wy-alert-danger.warning, .rst-content .wy-alert-danger.seealso, .rst-content .wy-alert-danger.admonition-todo { + background: #fdf3f2; +} +.wy-alert.wy-alert-danger .wy-alert-title, .rst-content .wy-alert-danger.note .wy-alert-title, .rst-content .wy-alert-danger.attention .wy-alert-title, .rst-content .wy-alert-danger.caution .wy-alert-title, .rst-content .danger .wy-alert-title, .rst-content .error .wy-alert-title, .rst-content .wy-alert-danger.hint .wy-alert-title, .rst-content .wy-alert-danger.important .wy-alert-title, .rst-content .wy-alert-danger.tip .wy-alert-title, .rst-content .wy-alert-danger.warning .wy-alert-title, .rst-content .wy-alert-danger.seealso .wy-alert-title, .rst-content .wy-alert-danger.admonition-todo .wy-alert-title, .wy-alert.wy-alert-danger .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-danger .admonition-title, .rst-content .wy-alert-danger.note .admonition-title, .rst-content .wy-alert-danger.attention .admonition-title, .rst-content .wy-alert-danger.caution .admonition-title, .rst-content .danger .admonition-title, .rst-content .error .admonition-title, .rst-content .wy-alert-danger.hint .admonition-title, .rst-content .wy-alert-danger.important .admonition-title, .rst-content .wy-alert-danger.tip .admonition-title, .rst-content .wy-alert-danger.warning .admonition-title, .rst-content .wy-alert-danger.seealso .admonition-title, .rst-content .wy-alert-danger.admonition-todo .admonition-title { + background: #f29f97; +} + +.wy-alert.wy-alert-warning, .rst-content .wy-alert-warning.note, .rst-content .attention, .rst-content .caution, .rst-content .wy-alert-warning.danger, .rst-content .wy-alert-warning.error, .rst-content .wy-alert-warning.hint, .rst-content .wy-alert-warning.important, .rst-content .wy-alert-warning.tip, .rst-content .warning, .rst-content .wy-alert-warning.seealso, .rst-content .admonition-todo { + background: #ffedcc; +} +.wy-alert.wy-alert-warning .wy-alert-title, .rst-content .wy-alert-warning.note .wy-alert-title, .rst-content .attention .wy-alert-title, .rst-content .caution .wy-alert-title, .rst-content .wy-alert-warning.danger .wy-alert-title, .rst-content .wy-alert-warning.error .wy-alert-title, .rst-content .wy-alert-warning.hint .wy-alert-title, .rst-content .wy-alert-warning.important .wy-alert-title, .rst-content .wy-alert-warning.tip .wy-alert-title, .rst-content .warning .wy-alert-title, .rst-content .wy-alert-warning.seealso .wy-alert-title, .rst-content .admonition-todo .wy-alert-title, .wy-alert.wy-alert-warning .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-warning .admonition-title, .rst-content .wy-alert-warning.note .admonition-title, .rst-content .attention .admonition-title, .rst-content .caution .admonition-title, .rst-content .wy-alert-warning.danger .admonition-title, .rst-content .wy-alert-warning.error .admonition-title, .rst-content .wy-alert-warning.hint .admonition-title, .rst-content .wy-alert-warning.important .admonition-title, .rst-content .wy-alert-warning.tip .admonition-title, .rst-content .warning .admonition-title, .rst-content .wy-alert-warning.seealso .admonition-title, .rst-content .admonition-todo .admonition-title { + background: #f0b37e; +} + +.wy-alert.wy-alert-info, .rst-content .note, .rst-content .wy-alert-info.attention, .rst-content .wy-alert-info.caution, .rst-content .wy-alert-info.danger, .rst-content .wy-alert-info.error, .rst-content .wy-alert-info.hint, .rst-content .wy-alert-info.important, .rst-content .wy-alert-info.tip, .rst-content .wy-alert-info.warning, .rst-content .seealso, .rst-content .wy-alert-info.admonition-todo { + background: #e7f2fa; +} +.wy-alert.wy-alert-info .wy-alert-title, .rst-content .note .wy-alert-title, .rst-content .wy-alert-info.attention .wy-alert-title, .rst-content .wy-alert-info.caution .wy-alert-title, .rst-content .wy-alert-info.danger .wy-alert-title, .rst-content .wy-alert-info.error .wy-alert-title, .rst-content .wy-alert-info.hint .wy-alert-title, .rst-content .wy-alert-info.important .wy-alert-title, .rst-content .wy-alert-info.tip .wy-alert-title, .rst-content .wy-alert-info.warning .wy-alert-title, .rst-content .seealso .wy-alert-title, .rst-content .wy-alert-info.admonition-todo .wy-alert-title, .wy-alert.wy-alert-info .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-info .admonition-title, .rst-content .note .admonition-title, .rst-content .wy-alert-info.attention .admonition-title, .rst-content .wy-alert-info.caution .admonition-title, .rst-content .wy-alert-info.danger .admonition-title, .rst-content .wy-alert-info.error .admonition-title, .rst-content .wy-alert-info.hint .admonition-title, .rst-content .wy-alert-info.important .admonition-title, .rst-content .wy-alert-info.tip .admonition-title, .rst-content .wy-alert-info.warning .admonition-title, .rst-content .seealso .admonition-title, .rst-content .wy-alert-info.admonition-todo .admonition-title { + background: #6ab0de; +} + +.wy-alert.wy-alert-success, .rst-content .wy-alert-success.note, .rst-content .wy-alert-success.attention, .rst-content .wy-alert-success.caution, .rst-content .wy-alert-success.danger, .rst-content .wy-alert-success.error, .rst-content .hint, .rst-content .important, .rst-content .tip, .rst-content .wy-alert-success.warning, .rst-content .wy-alert-success.seealso, .rst-content .wy-alert-success.admonition-todo { + background: #dbfaf4; +} +.wy-alert.wy-alert-success .wy-alert-title, .rst-content .wy-alert-success.note .wy-alert-title, .rst-content .wy-alert-success.attention .wy-alert-title, .rst-content .wy-alert-success.caution .wy-alert-title, .rst-content .wy-alert-success.danger .wy-alert-title, .rst-content .wy-alert-success.error .wy-alert-title, .rst-content .hint .wy-alert-title, .rst-content .important .wy-alert-title, .rst-content .tip .wy-alert-title, .rst-content .wy-alert-success.warning .wy-alert-title, .rst-content .wy-alert-success.seealso .wy-alert-title, .rst-content .wy-alert-success.admonition-todo .wy-alert-title, .wy-alert.wy-alert-success .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-success .admonition-title, .rst-content .wy-alert-success.note .admonition-title, .rst-content .wy-alert-success.attention .admonition-title, .rst-content .wy-alert-success.caution .admonition-title, .rst-content .wy-alert-success.danger .admonition-title, .rst-content .wy-alert-success.error .admonition-title, .rst-content .hint .admonition-title, .rst-content .important .admonition-title, .rst-content .tip .admonition-title, .rst-content .wy-alert-success.warning .admonition-title, .rst-content .wy-alert-success.seealso .admonition-title, .rst-content .wy-alert-success.admonition-todo .admonition-title { + background: #1abc9c; +} + +.wy-alert.wy-alert-neutral, .rst-content .wy-alert-neutral.note, .rst-content .wy-alert-neutral.attention, .rst-content .wy-alert-neutral.caution, .rst-content .wy-alert-neutral.danger, .rst-content .wy-alert-neutral.error, .rst-content .wy-alert-neutral.hint, .rst-content .wy-alert-neutral.important, .rst-content .wy-alert-neutral.tip, .rst-content .wy-alert-neutral.warning, .rst-content .wy-alert-neutral.seealso, .rst-content .wy-alert-neutral.admonition-todo { + background: #f3f6f6; +} +.wy-alert.wy-alert-neutral .wy-alert-title, .rst-content .wy-alert-neutral.note .wy-alert-title, .rst-content .wy-alert-neutral.attention .wy-alert-title, .rst-content .wy-alert-neutral.caution .wy-alert-title, .rst-content .wy-alert-neutral.danger .wy-alert-title, .rst-content .wy-alert-neutral.error .wy-alert-title, .rst-content .wy-alert-neutral.hint .wy-alert-title, .rst-content .wy-alert-neutral.important .wy-alert-title, .rst-content .wy-alert-neutral.tip .wy-alert-title, .rst-content .wy-alert-neutral.warning .wy-alert-title, .rst-content .wy-alert-neutral.seealso .wy-alert-title, .rst-content .wy-alert-neutral.admonition-todo .wy-alert-title, .wy-alert.wy-alert-neutral .rst-content .admonition-title, .rst-content .wy-alert.wy-alert-neutral .admonition-title, .rst-content .wy-alert-neutral.note .admonition-title, .rst-content .wy-alert-neutral.attention .admonition-title, .rst-content .wy-alert-neutral.caution .admonition-title, .rst-content .wy-alert-neutral.danger .admonition-title, .rst-content .wy-alert-neutral.error .admonition-title, .rst-content .wy-alert-neutral.hint .admonition-title, .rst-content .wy-alert-neutral.important .admonition-title, .rst-content .wy-alert-neutral.tip .admonition-title, .rst-content .wy-alert-neutral.warning .admonition-title, .rst-content .wy-alert-neutral.seealso .admonition-title, .rst-content .wy-alert-neutral.admonition-todo .admonition-title { + color: #404040; + background: #e1e4e5; +} +.wy-alert.wy-alert-neutral a, .rst-content .wy-alert-neutral.note a, .rst-content .wy-alert-neutral.attention a, .rst-content .wy-alert-neutral.caution a, .rst-content .wy-alert-neutral.danger a, .rst-content .wy-alert-neutral.error a, .rst-content .wy-alert-neutral.hint a, .rst-content .wy-alert-neutral.important a, .rst-content .wy-alert-neutral.tip a, .rst-content .wy-alert-neutral.warning a, .rst-content .wy-alert-neutral.seealso a, .rst-content .wy-alert-neutral.admonition-todo a { + color: #2980B9; +} + +.wy-alert p:last-child, .rst-content .note p:last-child, .rst-content .attention p:last-child, .rst-content .caution p:last-child, .rst-content .danger p:last-child, .rst-content .error p:last-child, .rst-content .hint p:last-child, .rst-content .important p:last-child, .rst-content .tip p:last-child, .rst-content .warning p:last-child, .rst-content .seealso p:last-child, .rst-content .admonition-todo p:last-child { + margin-bottom: 0; +} + +.wy-tray-container { + position: fixed; + bottom: 0px; + left: 0; + z-index: 600; +} +.wy-tray-container li { + display: block; + width: 300px; + background: transparent; + color: #fff; + text-align: center; + box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1); + padding: 0 24px; + min-width: 20%; + opacity: 0; + height: 0; + line-height: 56px; + overflow: hidden; + -webkit-transition: all 0.3s ease-in; + -moz-transition: all 0.3s ease-in; + transition: all 0.3s ease-in; +} +.wy-tray-container li.wy-tray-item-success { + background: #27AE60; +} +.wy-tray-container li.wy-tray-item-info { + background: #2980B9; +} +.wy-tray-container li.wy-tray-item-warning { + background: #E67E22; +} +.wy-tray-container li.wy-tray-item-danger { + background: #E74C3C; +} +.wy-tray-container li.on { + opacity: 1; + height: 56px; +} + +@media screen and (max-width: 768px) { + .wy-tray-container { + bottom: auto; + top: 0; + width: 100%; + } + .wy-tray-container li { + width: 100%; + } +} +button { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; + cursor: pointer; + line-height: normal; + -webkit-appearance: button; + *overflow: visible; +} + +button::-moz-focus-inner, input::-moz-focus-inner { + border: 0; + padding: 0; +} + +button[disabled] { + cursor: default; +} + +.btn { + /* Structure */ + display: inline-block; + border-radius: 2px; + line-height: normal; + white-space: nowrap; + text-align: center; + cursor: pointer; + font-size: 100%; + padding: 6px 12px 8px 12px; + color: #fff; + border: 1px solid rgba(0, 0, 0, 0.1); + background-color: #27AE60; + text-decoration: none; + font-weight: normal; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; + outline-none: false; + vertical-align: middle; + *display: inline; + zoom: 1; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all 0.1s linear; + -moz-transition: all 0.1s linear; + transition: all 0.1s linear; +} + +.btn-hover { + background: #2e8ece; + color: #fff; +} + +.btn:hover { + background: #2cc36b; + color: #fff; +} +.btn:focus { + background: #2cc36b; + outline: 0; +} +.btn:active { + box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.05) inset, 0px 2px 0px 0px rgba(0, 0, 0, 0.1) inset; + padding: 8px 12px 6px 12px; +} +.btn:visited { + color: #fff; +} +.btn:disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn-disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} +.btn-disabled:hover, .btn-disabled:focus, .btn-disabled:active { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +.btn-small { + font-size: 80%; +} + +.btn-info { + background-color: #2980B9 !important; +} +.btn-info:hover { + background-color: #2e8ece !important; +} + +.btn-neutral { + background-color: #f3f6f6 !important; + color: #404040 !important; +} +.btn-neutral:hover { + background-color: #e5ebeb !important; + color: #404040; +} +.btn-neutral:visited { + color: #404040 !important; +} + +.btn-success { + background-color: #27AE60 !important; +} +.btn-success:hover { + background-color: #229955 !important; +} + +.btn-danger { + background-color: #E74C3C !important; +} +.btn-danger:hover { + background-color: #ea6153 !important; +} + +.btn-warning { + background-color: #E67E22 !important; +} +.btn-warning:hover { + background-color: #e98b39 !important; +} + +.btn-invert { + background-color: #222; +} +.btn-invert:hover { + background-color: #2f2f2f !important; +} + +.btn-link { + background-color: transparent !important; + color: #2980B9; + box-shadow: none; + border-color: transparent !important; +} +.btn-link:hover { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:active { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} +.btn-link:visited { + color: #9B59B6; +} + +.wy-btn-group .btn, .wy-control .btn { + vertical-align: middle; +} + +.wy-btn-group { + margin-bottom: 24px; + *zoom: 1; +} +.wy-btn-group:before, .wy-btn-group:after { + display: table; + content: ""; +} +.wy-btn-group:after { + clear: both; +} + +.wy-dropdown { + position: relative; + display: inline-block; +} + +.wy-dropdown-active .wy-dropdown-menu { + display: block; +} + +.wy-dropdown-menu { + position: absolute; + left: 0; + display: none; + float: left; + top: 100%; + min-width: 100%; + background: #fcfcfc; + z-index: 100; + border: solid 1px #cfd7dd; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); + padding: 12px; +} +.wy-dropdown-menu > dd > a { + display: block; + clear: both; + color: #404040; + white-space: nowrap; + font-size: 90%; + padding: 0 12px; + cursor: pointer; +} +.wy-dropdown-menu > dd > a:hover { + background: #2980B9; + color: #fff; +} +.wy-dropdown-menu > dd.divider { + border-top: solid 1px #cfd7dd; + margin: 6px 0; +} +.wy-dropdown-menu > dd.search { + padding-bottom: 12px; +} +.wy-dropdown-menu > dd.search input[type="search"] { + width: 100%; +} +.wy-dropdown-menu > dd.call-to-action { + background: #e3e3e3; + text-transform: uppercase; + font-weight: 500; + font-size: 80%; +} +.wy-dropdown-menu > dd.call-to-action:hover { + background: #e3e3e3; +} +.wy-dropdown-menu > dd.call-to-action .btn { + color: #fff; +} + +.wy-dropdown.wy-dropdown-up .wy-dropdown-menu { + bottom: 100%; + top: auto; + left: auto; + right: 0; +} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu { + background: #fcfcfc; + margin-top: 2px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a { + padding: 6px 12px; +} +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover { + background: #2980B9; + color: #fff; +} + +.wy-dropdown.wy-dropdown-left .wy-dropdown-menu { + right: 0; + left: auto; + text-align: right; +} + +.wy-dropdown-arrow:before { + content: " "; + border-bottom: 5px solid whitesmoke; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + position: absolute; + display: block; + top: -4px; + left: 50%; + margin-left: -3px; +} +.wy-dropdown-arrow.wy-dropdown-arrow-left:before { + left: 11px; +} + +.wy-form-stacked select { + display: block; +} + +.wy-form-aligned input, .wy-form-aligned textarea, .wy-form-aligned select, .wy-form-aligned .wy-help-inline, .wy-form-aligned label { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-form-aligned .wy-control-group > label { + display: inline-block; + vertical-align: middle; + width: 10em; + margin: 6px 12px 0 0; + float: left; +} +.wy-form-aligned .wy-control { + float: left; +} +.wy-form-aligned .wy-control label { + display: block; +} +.wy-form-aligned .wy-control select { + margin-top: 6px; +} + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +legend { + display: block; + width: 100%; + border: 0; + padding: 0; + white-space: normal; + margin-bottom: 24px; + font-size: 150%; + *margin-left: -7px; +} + +label { + display: block; + margin: 0 0 0.3125em 0; + color: #333; + font-size: 90%; +} + +input, select, textarea { + font-size: 100%; + margin: 0; + vertical-align: baseline; + *vertical-align: middle; +} + +.wy-control-group { + margin-bottom: 24px; + *zoom: 1; + max-width: 68em; + margin-left: auto; + margin-right: auto; + *zoom: 1; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} +.wy-control-group:before, .wy-control-group:after { + display: table; + content: ""; +} +.wy-control-group:after { + clear: both; +} + +.wy-control-group.wy-control-group-required > label:after { + content: " *"; + color: #E74C3C; +} + +.wy-control-group .wy-form-full, .wy-control-group .wy-form-halves, .wy-control-group .wy-form-thirds { + padding-bottom: 12px; +} +.wy-control-group .wy-form-full select, .wy-control-group .wy-form-halves select, .wy-control-group .wy-form-thirds select { + width: 100%; +} +.wy-control-group .wy-form-full input[type="text"], .wy-control-group .wy-form-full input[type="password"], .wy-control-group .wy-form-full input[type="email"], .wy-control-group .wy-form-full input[type="url"], .wy-control-group .wy-form-full input[type="date"], .wy-control-group .wy-form-full input[type="month"], .wy-control-group .wy-form-full input[type="time"], .wy-control-group .wy-form-full input[type="datetime"], .wy-control-group .wy-form-full input[type="datetime-local"], .wy-control-group .wy-form-full input[type="week"], .wy-control-group .wy-form-full input[type="number"], .wy-control-group .wy-form-full input[type="search"], .wy-control-group .wy-form-full input[type="tel"], .wy-control-group .wy-form-full input[type="color"], .wy-control-group .wy-form-halves input[type="text"], .wy-control-group .wy-form-halves input[type="password"], .wy-control-group .wy-form-halves input[type="email"], .wy-control-group .wy-form-halves input[type="url"], .wy-control-group .wy-form-halves input[type="date"], .wy-control-group .wy-form-halves input[type="month"], .wy-control-group .wy-form-halves input[type="time"], .wy-control-group .wy-form-halves input[type="datetime"], .wy-control-group .wy-form-halves input[type="datetime-local"], .wy-control-group .wy-form-halves input[type="week"], .wy-control-group .wy-form-halves input[type="number"], .wy-control-group .wy-form-halves input[type="search"], .wy-control-group .wy-form-halves input[type="tel"], .wy-control-group .wy-form-halves input[type="color"], .wy-control-group .wy-form-thirds input[type="text"], .wy-control-group .wy-form-thirds input[type="password"], .wy-control-group .wy-form-thirds input[type="email"], .wy-control-group .wy-form-thirds input[type="url"], .wy-control-group .wy-form-thirds input[type="date"], .wy-control-group .wy-form-thirds input[type="month"], .wy-control-group .wy-form-thirds input[type="time"], .wy-control-group .wy-form-thirds input[type="datetime"], .wy-control-group .wy-form-thirds input[type="datetime-local"], .wy-control-group .wy-form-thirds input[type="week"], .wy-control-group .wy-form-thirds input[type="number"], .wy-control-group .wy-form-thirds input[type="search"], .wy-control-group .wy-form-thirds input[type="tel"], .wy-control-group .wy-form-thirds input[type="color"] { + width: 100%; +} + +.wy-control-group .wy-form-full { + float: left; + display: block; + margin-right: 2.35765%; + width: 100%; + margin-right: 0; +} +.wy-control-group .wy-form-full:last-child { + margin-right: 0; +} + +.wy-control-group .wy-form-halves { + float: left; + display: block; + margin-right: 2.35765%; + width: 48.82117%; +} +.wy-control-group .wy-form-halves:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n) { + margin-right: 0; +} +.wy-control-group .wy-form-halves:nth-of-type(2n+1) { + clear: left; +} + +.wy-control-group .wy-form-thirds { + float: left; + display: block; + margin-right: 2.35765%; + width: 31.76157%; +} +.wy-control-group .wy-form-thirds:last-child { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n) { + margin-right: 0; +} +.wy-control-group .wy-form-thirds:nth-of-type(3n+1) { + clear: left; +} + +.wy-control-group.wy-control-group-no-input .wy-control { + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-no-input { + display: inline-block; + margin: 6px 0 0 0; + font-size: 90%; +} + +.wy-control-group.fluid-input input[type="text"], .wy-control-group.fluid-input input[type="password"], .wy-control-group.fluid-input input[type="email"], .wy-control-group.fluid-input input[type="url"], .wy-control-group.fluid-input input[type="date"], .wy-control-group.fluid-input input[type="month"], .wy-control-group.fluid-input input[type="time"], .wy-control-group.fluid-input input[type="datetime"], .wy-control-group.fluid-input input[type="datetime-local"], .wy-control-group.fluid-input input[type="week"], .wy-control-group.fluid-input input[type="number"], .wy-control-group.fluid-input input[type="search"], .wy-control-group.fluid-input input[type="tel"], .wy-control-group.fluid-input input[type="color"] { + width: 100%; +} + +.wy-form-message-inline { + display: inline-block; + padding-left: 0.3em; + color: #666; + vertical-align: middle; + font-size: 90%; +} + +.wy-form-message { + display: block; + color: #999; + font-size: 70%; + margin-top: 0.3125em; + font-style: italic; +} +.wy-form-message p { + font-size: inherit; + font-style: italic; + margin-bottom: 6px; +} +.wy-form-message p:last-child { + margin-bottom: 0; +} + +input { + line-height: normal; +} + +input[type="button"], input[type="reset"], input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + *overflow: visible; +} +input[type="text"], input[type="password"], input[type="email"], input[type="url"], input[type="date"], input[type="month"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="week"], input[type="number"], input[type="search"], input[type="tel"], input[type="color"] { + -webkit-appearance: none; + padding: 6px; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + box-shadow: inset 0 1px 3px #ddd; + border-radius: 0; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} +input[type="datetime-local"] { + padding: 0.34375em 0.625em; +} +input[disabled] { + cursor: default; +} +input[type="checkbox"], input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; + margin-right: 0.3125em; + *height: 13px; + *width: 13px; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} +input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="week"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="color"]:focus { + outline: 0; + outline: thin dotted \9; + border-color: #333; +} +input.no-focus:focus { + border-color: #ccc !important; +} +input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 1px auto #129FEA; +} +input[type="text"][disabled], input[type="password"][disabled], input[type="email"][disabled], input[type="url"][disabled], input[type="date"][disabled], input[type="month"][disabled], input[type="time"][disabled], input[type="datetime"][disabled], input[type="datetime-local"][disabled], input[type="week"][disabled], input[type="number"][disabled], input[type="search"][disabled], input[type="tel"][disabled], input[type="color"][disabled] { + cursor: not-allowed; + background-color: #fafafa; +} + +input:focus:invalid, textarea:focus:invalid, select:focus:invalid { + color: #E74C3C; + border: 1px solid #E74C3C; +} + +input:focus:invalid:focus, textarea:focus:invalid:focus, select:focus:invalid:focus { + border-color: #E74C3C; +} + +input[type="file"]:focus:invalid:focus, input[type="radio"]:focus:invalid:focus, input[type="checkbox"]:focus:invalid:focus { + outline-color: #E74C3C; +} + +input.wy-input-large { + padding: 12px; + font-size: 100%; +} + +textarea { + overflow: auto; + vertical-align: top; + width: 100%; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; +} + +select, textarea { + padding: 0.5em 0.625em; + display: inline-block; + border: 1px solid #ccc; + font-size: 80%; + box-shadow: inset 0 1px 3px #ddd; + -webkit-transition: border 0.3s linear; + -moz-transition: border 0.3s linear; + transition: border 0.3s linear; +} + +select { + border: 1px solid #ccc; + background-color: #fff; +} +select[multiple] { + height: auto; +} + +select:focus, textarea:focus { + outline: 0; +} + +select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { + cursor: not-allowed; + background-color: #fafafa; +} + +input[type="radio"][disabled], input[type="checkbox"][disabled] { + cursor: not-allowed; +} + +.wy-checkbox, .wy-radio { + margin: 6px 0; + color: #404040; + display: block; +} +.wy-checkbox input, .wy-radio input { + vertical-align: baseline; +} + +.wy-form-message-inline { + display: inline-block; + *display: inline; + *zoom: 1; + vertical-align: middle; +} + +.wy-input-prefix, .wy-input-suffix { + white-space: nowrap; + padding: 6px; +} +.wy-input-prefix .wy-input-context, .wy-input-suffix .wy-input-context { + line-height: 27px; + padding: 0 8px; + display: inline-block; + font-size: 80%; + background-color: #f3f6f6; + border: solid 1px #ccc; + color: #999; +} + +.wy-input-suffix .wy-input-context { + border-left: 0; +} + +.wy-input-prefix .wy-input-context { + border-right: 0; +} + +.wy-switch { + width: 36px; + height: 12px; + margin: 12px 0; + position: relative; + border-radius: 4px; + background: #ccc; + cursor: pointer; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch:before { + position: absolute; + content: ""; + display: block; + width: 18px; + height: 18px; + border-radius: 4px; + background: #999; + left: -3px; + top: -3px; + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} +.wy-switch:after { + content: "false"; + position: absolute; + left: 48px; + display: block; + font-size: 12px; + color: #ccc; +} + +.wy-switch.active { + background: #1e8449; +} +.wy-switch.active:before { + left: 24px; + background: #27AE60; +} +.wy-switch.active:after { + content: "true"; +} + +.wy-switch.disabled, .wy-switch.active.disabled { + cursor: not-allowed; +} + +.wy-control-group.wy-control-group-error .wy-form-message, .wy-control-group.wy-control-group-error > label { + color: #E74C3C; +} +.wy-control-group.wy-control-group-error input[type="text"], .wy-control-group.wy-control-group-error input[type="password"], .wy-control-group.wy-control-group-error input[type="email"], .wy-control-group.wy-control-group-error input[type="url"], .wy-control-group.wy-control-group-error input[type="date"], .wy-control-group.wy-control-group-error input[type="month"], .wy-control-group.wy-control-group-error input[type="time"], .wy-control-group.wy-control-group-error input[type="datetime"], .wy-control-group.wy-control-group-error input[type="datetime-local"], .wy-control-group.wy-control-group-error input[type="week"], .wy-control-group.wy-control-group-error input[type="number"], .wy-control-group.wy-control-group-error input[type="search"], .wy-control-group.wy-control-group-error input[type="tel"], .wy-control-group.wy-control-group-error input[type="color"] { + border: solid 1px #E74C3C; +} +.wy-control-group.wy-control-group-error textarea { + border: solid 1px #E74C3C; +} + +.wy-inline-validate { + white-space: nowrap; +} +.wy-inline-validate .wy-input-context { + padding: 0.5em 0.625em; + display: inline-block; + font-size: 80%; +} + +.wy-inline-validate.wy-inline-validate-success .wy-input-context { + color: #27AE60; +} + +.wy-inline-validate.wy-inline-validate-danger .wy-input-context { + color: #E74C3C; +} + +.wy-inline-validate.wy-inline-validate-warning .wy-input-context { + color: #E67E22; +} + +.wy-inline-validate.wy-inline-validate-info .wy-input-context { + color: #2980B9; +} + +.rotate-90 { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} + +.rotate-180 { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +.rotate-270 { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} + +.mirror { + -webkit-transform: scaleX(-1); + -moz-transform: scaleX(-1); + -ms-transform: scaleX(-1); + -o-transform: scaleX(-1); + transform: scaleX(-1); +} +.mirror.rotate-90 { + -webkit-transform: scaleX(-1) rotate(90deg); + -moz-transform: scaleX(-1) rotate(90deg); + -ms-transform: scaleX(-1) rotate(90deg); + -o-transform: scaleX(-1) rotate(90deg); + transform: scaleX(-1) rotate(90deg); +} +.mirror.rotate-180 { + -webkit-transform: scaleX(-1) rotate(180deg); + -moz-transform: scaleX(-1) rotate(180deg); + -ms-transform: scaleX(-1) rotate(180deg); + -o-transform: scaleX(-1) rotate(180deg); + transform: scaleX(-1) rotate(180deg); +} +.mirror.rotate-270 { + -webkit-transform: scaleX(-1) rotate(270deg); + -moz-transform: scaleX(-1) rotate(270deg); + -ms-transform: scaleX(-1) rotate(270deg); + -o-transform: scaleX(-1) rotate(270deg); + transform: scaleX(-1) rotate(270deg); +} + +@media only screen and (max-width: 480px) { + .wy-form button[type="submit"] { + margin: 0.7em 0 0; + } + .wy-form input[type="text"], .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0.3em; + display: block; + } + .wy-form label { + margin-bottom: 0.3em; + display: block; + } + + .wy-form input[type="password"], .wy-form input[type="email"], .wy-form input[type="url"], .wy-form input[type="date"], .wy-form input[type="month"], .wy-form input[type="time"], .wy-form input[type="datetime"], .wy-form input[type="datetime-local"], .wy-form input[type="week"], .wy-form input[type="number"], .wy-form input[type="search"], .wy-form input[type="tel"], .wy-form input[type="color"] { + margin-bottom: 0; + } + + .wy-form-aligned .wy-control-group label { + margin-bottom: 0.3em; + text-align: left; + display: block; + width: 100%; + } + .wy-form-aligned .wy-control { + margin: 1.5em 0 0 0; + } + + .wy-form .wy-help-inline, .wy-form-message-inline, .wy-form-message { + display: block; + font-size: 80%; + padding: 6px 0; + } +} +@media screen and (max-width: 768px) { + .tablet-hide { + display: none; + } +} + +@media screen and (max-width: 480px) { + .mobile-hide { + display: none; + } +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.full-width { + width: 100%; +} + +.wy-table, .rst-content table.docutils, .rst-content table.field-list { + border-collapse: collapse; + border-spacing: 0; + empty-cells: show; + margin-bottom: 24px; +} +.wy-table caption, .rst-content table.docutils caption, .rst-content table.field-list caption { + color: #000; + font: italic 85%/1 arial, sans-serif; + padding: 1em 0; + text-align: center; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td, .wy-table th, .rst-content table.docutils th, .rst-content table.field-list th { + font-size: 90%; + margin: 0; + overflow: visible; + padding: 8px 16px; +} +.wy-table td:first-child, .rst-content table.docutils td:first-child, .rst-content table.field-list td:first-child, .wy-table th:first-child, .rst-content table.docutils th:first-child, .rst-content table.field-list th:first-child { + border-left-width: 0; +} +.wy-table thead, .rst-content table.docutils thead, .rst-content table.field-list thead { + color: #000; + text-align: left; + vertical-align: bottom; + white-space: nowrap; +} +.wy-table thead th, .rst-content table.docutils thead th, .rst-content table.field-list thead th { + font-weight: bold; + border-bottom: solid 2px #e1e4e5; +} +.wy-table td, .rst-content table.docutils td, .rst-content table.field-list td { + background-color: transparent; + vertical-align: middle; +} + +.wy-table td p, .rst-content table.docutils td p, .rst-content table.field-list td p { + line-height: 18px; +} +.wy-table td p:last-child, .rst-content table.docutils td p:last-child, .rst-content table.field-list td p:last-child { + margin-bottom: 0; +} + +.wy-table .wy-table-cell-min, .rst-content table.docutils .wy-table-cell-min, .rst-content table.field-list .wy-table-cell-min { + width: 1%; + padding-right: 0; +} +.wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox], .wy-table .wy-table-cell-min input[type=checkbox], .rst-content table.docutils .wy-table-cell-min input[type=checkbox], .rst-content table.field-list .wy-table-cell-min input[type=checkbox] { + margin: 0; +} + +.wy-table-secondary { + color: gray; + font-size: 90%; +} + +.wy-table-tertiary { + color: gray; + font-size: 80%; +} + +.wy-table-odd td, .wy-table-striped tr:nth-child(2n-1) td, .rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td { + background-color: #f3f6f6; +} + +.wy-table-backed { + background-color: #f3f6f6; +} + +/* BORDERED TABLES */ +.wy-table-bordered-all, .rst-content table.docutils { + border: 1px solid #e1e4e5; +} +.wy-table-bordered-all td, .rst-content table.docutils td { + border-bottom: 1px solid #e1e4e5; + border-left: 1px solid #e1e4e5; +} +.wy-table-bordered-all tbody > tr:last-child td, .rst-content table.docutils tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-bordered { + border: 1px solid #e1e4e5; +} + +.wy-table-bordered-rows td { + border-bottom: 1px solid #e1e4e5; +} +.wy-table-bordered-rows tbody > tr:last-child td { + border-bottom-width: 0; +} + +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} +.wy-table-horizontal td, .wy-table-horizontal th { + border-width: 0 0 1px 0; + border-bottom: 1px solid #e1e4e5; +} +.wy-table-horizontal tbody > tr:last-child td { + border-bottom-width: 0; +} + +/* RESPONSIVE TABLES */ +.wy-table-responsive { + margin-bottom: 24px; + max-width: 100%; + overflow: auto; +} +.wy-table-responsive table { + margin-bottom: 0 !important; +} +.wy-table-responsive table td, .wy-table-responsive table th { + white-space: nowrap; +} + +a { + color: #2980B9; + text-decoration: none; + cursor: pointer; +} +a:hover { + color: #3091d1; +} +a:visited { + color: #9B59B6; +} + +html { + height: 100%; + overflow-x: hidden; +} + +body { + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + font-weight: normal; + color: #404040; + min-height: 100%; + overflow-x: hidden; + background: #edf0f2; +} + +.wy-text-left { + text-align: left; +} + +.wy-text-center { + text-align: center; +} + +.wy-text-right { + text-align: right; +} + +.wy-text-large { + font-size: 120%; +} + +.wy-text-normal { + font-size: 100%; +} + +.wy-text-small, small { + font-size: 80%; +} + +.wy-text-strike { + text-decoration: line-through; +} + +.wy-text-warning { + color: #E67E22 !important; +} + +a.wy-text-warning:hover { + color: #eb9950 !important; +} + +.wy-text-info { + color: #2980B9 !important; +} + +a.wy-text-info:hover { + color: #409ad5 !important; +} + +.wy-text-success { + color: #27AE60 !important; +} + +a.wy-text-success:hover { + color: #36d278 !important; +} + +.wy-text-danger { + color: #E74C3C !important; +} + +a.wy-text-danger:hover { + color: #ed7669 !important; +} + +.wy-text-neutral { + color: #404040 !important; +} + +a.wy-text-neutral:hover { + color: #595959 !important; +} + +h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend { + margin-top: 0; + font-weight: 700; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; +} + +p { + line-height: 24px; + margin: 0; + font-size: 16px; + margin-bottom: 24px; +} + +h1 { + font-size: 175%; +} + +h2, .rst-content .toctree-wrapper p.caption { + font-size: 150%; +} + +h3 { + font-size: 125%; +} + +h4 { + font-size: 115%; +} + +h5 { + font-size: 110%; +} + +h6 { + font-size: 100%; +} + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #e1e4e5; + margin: 24px 0; + padding: 0; +} + +code, .rst-content tt, .rst-content code { + white-space: nowrap; + max-width: 100%; + background: #fff; + border: solid 1px #e1e4e5; + font-size: 75%; + padding: 0 5px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + color: #E74C3C; + overflow-x: auto; +} +code.code-large, .rst-content tt.code-large { + font-size: 90%; +} + +.wy-plain-list-disc, .rst-content .section ul, .rst-content .toctree-wrapper ul, article ul { + list-style: disc; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-disc li, .rst-content .section ul li, .rst-content .toctree-wrapper ul li, article ul li { + list-style: disc; + margin-left: 24px; +} +.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-disc li ul, .rst-content .section ul li ul, .rst-content .toctree-wrapper ul li ul, article ul li ul { + margin-bottom: 0; +} +.wy-plain-list-disc li li, .rst-content .section ul li li, .rst-content .toctree-wrapper ul li li, article ul li li { + list-style: circle; +} +.wy-plain-list-disc li li li, .rst-content .section ul li li li, .rst-content .toctree-wrapper ul li li li, article ul li li li { + list-style: square; +} +.wy-plain-list-disc li ol li, .rst-content .section ul li ol li, .rst-content .toctree-wrapper ul li ol li, article ul li ol li { + list-style: decimal; +} + +.wy-plain-list-decimal, .rst-content .section ol, .rst-content ol.arabic, article ol { + list-style: decimal; + line-height: 24px; + margin-bottom: 24px; +} +.wy-plain-list-decimal li, .rst-content .section ol li, .rst-content ol.arabic li, article ol li { + list-style: decimal; + margin-left: 24px; +} +.wy-plain-list-decimal li p:last-child, .rst-content .section ol li p:last-child, .rst-content ol.arabic li p:last-child, article ol li p:last-child { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul, .rst-content .section ol li ul, .rst-content ol.arabic li ul, article ol li ul { + margin-bottom: 0; +} +.wy-plain-list-decimal li ul li, .rst-content .section ol li ul li, .rst-content ol.arabic li ul li, article ol li ul li { + list-style: disc; +} + +.codeblock-example { + border: 1px solid #e1e4e5; + border-bottom: none; + padding: 24px; + padding-top: 48px; + font-weight: 500; + background: #fff; + position: relative; +} +.codeblock-example:after { + content: "Example"; + position: absolute; + top: 0px; + left: 0px; + background: #9B59B6; + color: white; + padding: 6px 12px; +} +.codeblock-example.prettyprint-example-only { + border: 1px solid #e1e4e5; + margin-bottom: 24px; +} + +.codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'] { + border: 1px solid #e1e4e5; + padding: 0px; + overflow-x: auto; + background: #fff; + margin: 1px 0 24px 0; +} +.codeblock div[class^='highlight'], pre.literal-block div[class^='highlight'], .rst-content .literal-block div[class^='highlight'], div[class^='highlight'] div[class^='highlight'] { + border: none; + background: none; + margin: 0; +} + +div[class^='highlight'] td.code { + width: 100%; +} + +.linenodiv pre { + border-right: solid 1px #e6e9ea; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + color: #d9d9d9; +} + +div[class^='highlight'] pre { + white-space: pre; + margin: 0; + padding: 12px 12px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 12px; + line-height: 1.5; + display: block; + overflow: auto; + color: #404040; +} + +@media print { + .codeblock, pre.literal-block, .rst-content .literal-block, .rst-content pre.literal-block, div[class^='highlight'], div[class^='highlight'] pre { + white-space: pre-wrap; + } +} +.hll { + background-color: #ffffcc; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +.c { + color: #999988; + font-style: italic; +} + +.err { + color: #a61717; + background-color: #e3d2d2; +} + +.k { + font-weight: bold; +} + +.o { + font-weight: bold; +} + +.cm { + color: #999988; + font-style: italic; +} + +.cp { + color: #999999; + font-weight: bold; +} + +.c1 { + color: #999988; + font-style: italic; +} + +.cs { + color: #999999; + font-weight: bold; + font-style: italic; +} + +.gd { + color: #000000; + background-color: #ffdddd; +} + +.gd .x { + color: #000000; + background-color: #ffaaaa; +} + +.ge { + font-style: italic; +} + +.gr { + color: #aa0000; +} + +.gh { + color: #999999; +} + +.gi { + color: #000000; + background-color: #ddffdd; +} + +.gi .x { + color: #000000; + background-color: #aaffaa; +} + +.go { + color: #888888; +} + +.gp { + color: #555555; +} + +.gs { + font-weight: bold; +} + +.gu { + color: #800080; + font-weight: bold; +} + +.gt { + color: #aa0000; +} + +.kc { + font-weight: bold; +} + +.kd { + font-weight: bold; +} + +.kn { + font-weight: bold; +} + +.kp { + font-weight: bold; +} + +.kr { + font-weight: bold; +} + +.kt { + color: #445588; + font-weight: bold; +} + +.m { + color: #009999; +} + +.s { + color: #dd1144; +} + +.n { + color: #333333; +} + +.na { + color: teal; +} + +.nb { + color: #0086b3; +} + +.nc { + color: #445588; + font-weight: bold; +} + +.no { + color: teal; +} + +.ni { + color: purple; +} + +.ne { + color: #990000; + font-weight: bold; +} + +.nf { + color: #990000; + font-weight: bold; +} + +.nn { + color: #555555; +} + +.nt { + color: navy; +} + +.nv { + color: teal; +} + +.ow { + font-weight: bold; +} + +.w { + color: #bbbbbb; +} + +.mf { + color: #009999; +} + +.mh { + color: #009999; +} + +.mi { + color: #009999; +} + +.mo { + color: #009999; +} + +.sb { + color: #dd1144; +} + +.sc { + color: #dd1144; +} + +.sd { + color: #dd1144; +} + +.s2 { + color: #dd1144; +} + +.se { + color: #dd1144; +} + +.sh { + color: #dd1144; +} + +.si { + color: #dd1144; +} + +.sx { + color: #dd1144; +} + +.sr { + color: #009926; +} + +.s1 { + color: #dd1144; +} + +.ss { + color: #990073; +} + +.bp { + color: #999999; +} + +.vc { + color: teal; +} + +.vg { + color: teal; +} + +.vi { + color: teal; +} + +.il { + color: #009999; +} + +.gc { + color: #999; + background-color: #EAF2F5; +} + +.wy-breadcrumbs li { + display: inline-block; +} +.wy-breadcrumbs li.wy-breadcrumbs-aside { + float: right; +} +.wy-breadcrumbs li a { + display: inline-block; + padding: 5px; +} +.wy-breadcrumbs li a:first-child { + padding-left: 0; +} +.wy-breadcrumbs li code, .wy-breadcrumbs li .rst-content tt, .rst-content .wy-breadcrumbs li tt { + padding: 5px; + border: none; + background: none; +} +.wy-breadcrumbs li code.literal, .wy-breadcrumbs li .rst-content tt.literal, .rst-content .wy-breadcrumbs li tt.literal { + color: #404040; +} + +.wy-breadcrumbs-extra { + margin-bottom: 0; + color: #b3b3b3; + font-size: 80%; + display: inline-block; +} + +@media screen and (max-width: 480px) { + .wy-breadcrumbs-extra { + display: none; + } + + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +@media print { + .wy-breadcrumbs li.wy-breadcrumbs-aside { + display: none; + } +} +.wy-affix { + position: fixed; + top: 1.618em; +} + +.wy-menu a:hover { + text-decoration: none; +} + +.wy-menu-horiz { + *zoom: 1; +} +.wy-menu-horiz:before, .wy-menu-horiz:after { + display: table; + content: ""; +} +.wy-menu-horiz:after { + clear: both; +} +.wy-menu-horiz ul, .wy-menu-horiz li { + display: inline-block; +} +.wy-menu-horiz li:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-menu-horiz li.divide-left { + border-left: solid 1px #404040; +} +.wy-menu-horiz li.divide-right { + border-right: solid 1px #404040; +} +.wy-menu-horiz a { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 16px; +} + +.wy-menu-vertical header, .wy-menu-vertical p.caption { + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 1.618em; + margin-bottom: 0; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 80%; + color: #555; + white-space: nowrap; +} +.wy-menu-vertical ul { + margin-bottom: 0; +} +.wy-menu-vertical li.divide-top { + border-top: solid 1px #404040; +} +.wy-menu-vertical li.divide-bottom { + border-bottom: solid 1px #404040; +} +.wy-menu-vertical li.current { + background: #e3e3e3; +} +.wy-menu-vertical li.current a { + color: gray; + border-right: solid 1px #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.current a:hover { + background: #d6d6d6; +} +.wy-menu-vertical li code, .wy-menu-vertical li .rst-content tt, .rst-content .wy-menu-vertical li tt { + border: none; + background: inherit; + color: inherit; + padding-left: 0; + padding-right: 0; +} +.wy-menu-vertical li span.toctree-expand { + display: block; + float: left; + margin-left: -1.2em; + font-size: 0.8em; + line-height: 1.6em; + color: #4d4d4d; +} +.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { + color: #404040; + padding: 0.4045em 1.618em; + font-weight: bold; + position: relative; + background: #fcfcfc; + border: none; + border-bottom: solid 1px #c9c9c9; + border-top: solid 1px #c9c9c9; + padding-left: 1.618em -4px; +} +.wy-menu-vertical li.on a:hover, .wy-menu-vertical li.current > a:hover { + background: #fcfcfc; +} +.wy-menu-vertical li.on a:hover span.toctree-expand, .wy-menu-vertical li.current > a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.on a span.toctree-expand, .wy-menu-vertical li.current > a span.toctree-expand { + display: block; + font-size: 0.8em; + line-height: 1.6em; + color: #333333; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2 > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3 > ul { + display: none; +} +.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current > ul, .wy-menu-vertical li.toctree-l2.current li.toctree-l3.current > ul { + display: block; +} +.wy-menu-vertical li.toctree-l2.current > a { + background: #c9c9c9; + padding: 0.4045em 2.427em; +} +.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { + display: block; + background: #c9c9c9; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l2 span.toctree-expand { + color: #a3a3a3; +} +.wy-menu-vertical li.toctree-l3 { + font-size: 0.9em; +} +.wy-menu-vertical li.toctree-l3.current > a { + background: #bdbdbd; + padding: 0.4045em 4.045em; +} +.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { + display: block; + background: #bdbdbd; + padding: 0.4045em 5.663em; + border-top: none; + border-bottom: none; +} +.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand { + color: gray; +} +.wy-menu-vertical li.toctree-l3 span.toctree-expand { + color: #969696; +} +.wy-menu-vertical li.toctree-l4 { + font-size: 0.9em; +} +.wy-menu-vertical li.current ul { + display: block; +} +.wy-menu-vertical li ul { + margin-bottom: 0; + display: none; +} +.wy-menu-vertical .local-toc li ul { + display: block; +} +.wy-menu-vertical li ul li a { + margin-bottom: 0; + color: #b3b3b3; + font-weight: normal; +} +.wy-menu-vertical a { + display: inline-block; + line-height: 18px; + padding: 0.4045em 1.618em; + display: block; + position: relative; + font-size: 90%; + color: #b3b3b3; +} +.wy-menu-vertical a:hover { + background-color: #4e4a4a; + cursor: pointer; +} +.wy-menu-vertical a:hover span.toctree-expand { + color: #b3b3b3; +} +.wy-menu-vertical a:active { + background-color: #2980B9; + cursor: pointer; + color: #fff; +} +.wy-menu-vertical a:active span.toctree-expand { + color: #fff; +} + +.wy-side-nav-search { + z-index: 200; + background-color: #2980B9; + text-align: center; + padding: 0.809em; + display: block; + color: #fcfcfc; + margin-bottom: 0.809em; +} +.wy-side-nav-search input[type=text] { + width: 100%; + border-radius: 50px; + padding: 6px 12px; + border-color: #2472a4; +} +.wy-side-nav-search img { + display: block; + margin: auto auto 0.809em auto; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-side-nav-search > a, .wy-side-nav-search .wy-dropdown > a { + color: #fcfcfc; + font-size: 100%; + font-weight: bold; + display: inline-block; + padding: 4px 6px; + margin-bottom: 0.809em; +} +.wy-side-nav-search > a:hover, .wy-side-nav-search .wy-dropdown > a:hover { + background: rgba(255, 255, 255, 0.1); +} +.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo { + display: block; + margin: 0 auto; + height: auto; + width: auto; + border-radius: 0; + max-width: 100%; + background: transparent; +} +.wy-side-nav-search > a.icon img.logo, .wy-side-nav-search .wy-dropdown > a.icon img.logo { + margin-top: 0.85em; +} +.wy-side-nav-search > div.version { + margin-top: -0.4045em; + margin-bottom: 0.809em; + font-weight: normal; + color: rgba(255, 255, 255, 0.3); +} + +.wy-nav .wy-menu-vertical header { + color: #2980B9; +} +.wy-nav .wy-menu-vertical a { + color: #b3b3b3; +} +.wy-nav .wy-menu-vertical a:hover { + background-color: #2980B9; + color: #fff; +} + +[data-menu-wrap] { + -webkit-transition: all 0.2s ease-in; + -moz-transition: all 0.2s ease-in; + transition: all 0.2s ease-in; + position: absolute; + opacity: 1; + width: 100%; + opacity: 0; +} +[data-menu-wrap].move-center { + left: 0; + right: auto; + opacity: 1; +} +[data-menu-wrap].move-left { + right: auto; + left: -100%; + opacity: 0; +} +[data-menu-wrap].move-right { + right: -100%; + left: auto; + opacity: 0; +} + +.wy-body-for-nav { + background: left repeat-y #fcfcfc; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC); + background-size: 300px 1px; +} + +.wy-grid-for-nav { + position: absolute; + width: 100%; + height: 100%; +} + +.wy-nav-side { + position: fixed; + top: 0; + bottom: 0; + left: 0; + padding-bottom: 2em; + width: 300px; + overflow-x: hidden; + overflow-y: scroll; + min-height: 100%; + background: #343131; + z-index: 200; +} + +.wy-nav-top { + display: none; + background: #2980B9; + color: #fff; + padding: 0.4045em 0.809em; + position: relative; + line-height: 50px; + text-align: center; + font-size: 100%; + *zoom: 1; +} +.wy-nav-top:before, .wy-nav-top:after { + display: table; + content: ""; +} +.wy-nav-top:after { + clear: both; +} +.wy-nav-top a { + color: #fff; + font-weight: bold; +} +.wy-nav-top img { + margin-right: 12px; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} +.wy-nav-top i { + font-size: 30px; + float: left; + cursor: pointer; +} + +.wy-nav-content-wrap { + margin-left: 300px; + background: #fcfcfc; + min-height: 100%; +} + +.wy-nav-content { + padding: 1.618em 3.236em; + height: 100%; + margin: auto; +} + +.wy-body-mask { + position: fixed; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.2); + display: none; + z-index: 499; +} +.wy-body-mask.on { + display: block; +} + +footer { + color: #999; +} +footer p { + margin-bottom: 12px; +} +footer span.commit code, footer span.commit .rst-content tt, .rst-content footer span.commit tt { + padding: 0px; + font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; + font-size: 1em; + background: none; + border: none; + color: #999; +} + +.rst-footer-buttons { + *zoom: 1; +} +.rst-footer-buttons:before, .rst-footer-buttons:after { + display: table; + content: ""; +} +.rst-footer-buttons:after { + clear: both; +} + +#search-results .search li { + margin-bottom: 24px; + border-bottom: solid 1px #e1e4e5; + padding-bottom: 24px; +} +#search-results .search li:first-child { + border-top: solid 1px #e1e4e5; + padding-top: 24px; +} +#search-results .search li a { + font-size: 120%; + margin-bottom: 12px; + display: inline-block; +} +#search-results .context { + color: gray; + font-size: 90%; +} + +@media screen and (max-width: 768px) { + .wy-body-for-nav { + background: #fcfcfc; + } + + .wy-nav-top { + display: block; + } + + .wy-nav-side { + left: -300px; + } + .wy-nav-side.shift { + width: 85%; + left: 0; + } + + .wy-nav-content-wrap { + margin-left: 0; + } + .wy-nav-content-wrap .wy-nav-content { + padding: 1.618em; + } + .wy-nav-content-wrap.shift { + position: fixed; + min-width: 100%; + left: 85%; + top: 0; + height: 100%; + overflow: hidden; + } +} +@media screen and (min-width: 1400px) { + .wy-nav-content-wrap { + background: rgba(0, 0, 0, 0.05); + } + + .wy-nav-content { + margin: 0; + background: #fcfcfc; + } +} +@media print { + .rst-versions, footer, .wy-nav-side { + display: none; + } + + .wy-nav-content-wrap { + margin-left: 0; + } +} +.rst-versions { + position: fixed; + bottom: 0; + left: 0; + width: 300px; + color: #fcfcfc; + background: #1f1d1d; + border-top: solid 10px #343131; + font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; + z-index: 400; +} +.rst-versions a { + color: #2980B9; + text-decoration: none; +} +.rst-versions .rst-badge-small { + display: none; +} +.rst-versions .rst-current-version { + padding: 12px; + background-color: #272525; + display: block; + text-align: right; + font-size: 90%; + cursor: pointer; + color: #27AE60; + *zoom: 1; +} +.rst-versions .rst-current-version:before, .rst-versions .rst-current-version:after { + display: table; + content: ""; +} +.rst-versions .rst-current-version:after { + clear: both; +} +.rst-versions .rst-current-version .fa, .rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, .wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand, .rst-versions .rst-current-version .rst-content .admonition-title, .rst-content .rst-versions .rst-current-version .admonition-title, .rst-versions .rst-current-version .rst-content h1 .headerlink, .rst-content h1 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h2 .headerlink, .rst-content h2 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h3 .headerlink, .rst-content h3 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h4 .headerlink, .rst-content h4 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h5 .headerlink, .rst-content h5 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content h6 .headerlink, .rst-content h6 .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content dl dt .headerlink, .rst-content dl dt .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content p.caption .headerlink, .rst-content p.caption .rst-versions .rst-current-version .headerlink, .rst-versions .rst-current-version .rst-content tt.download span:first-child, .rst-content tt.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .rst-content code.download span:first-child, .rst-content code.download .rst-versions .rst-current-version span:first-child, .rst-versions .rst-current-version .icon { + color: #fcfcfc; +} +.rst-versions .rst-current-version .fa-book, .rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version .icon-book { + float: left; +} +.rst-versions .rst-current-version.rst-out-of-date { + background-color: #E74C3C; + color: #fff; +} +.rst-versions .rst-current-version.rst-active-old-version { + background-color: #F1C40F; + color: #000; +} +.rst-versions.shift-up .rst-other-versions { + display: block; +} +.rst-versions .rst-other-versions { + font-size: 90%; + padding: 12px; + color: gray; + display: none; +} +.rst-versions .rst-other-versions hr { + display: block; + height: 1px; + border: 0; + margin: 20px 0; + padding: 0; + border-top: solid 1px #413d3d; +} +.rst-versions .rst-other-versions dd { + display: inline-block; + margin: 0; +} +.rst-versions .rst-other-versions dd a { + display: inline-block; + padding: 6px; + color: #fcfcfc; +} +.rst-versions.rst-badge { + width: auto; + bottom: 20px; + right: 20px; + left: auto; + border: none; + max-width: 300px; +} +.rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge .fa-book, .rst-versions.rst-badge .icon-book { + float: none; +} +.rst-versions.rst-badge.shift-up .rst-current-version { + text-align: right; +} +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book, .rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { + float: left; +} +.rst-versions.rst-badge .rst-current-version { + width: auto; + height: 30px; + line-height: 30px; + padding: 0 6px; + display: block; + text-align: center; +} + +@media screen and (max-width: 768px) { + .rst-versions { + width: 85%; + display: none; + } + .rst-versions.shift { + display: block; + } + + img { + width: 100%; + height: auto; + } +} +.rst-content img { + max-width: 100%; + height: auto !important; +} +.rst-content div.figure { + margin-bottom: 24px; +} +.rst-content div.figure p.caption { + font-style: italic; +} +.rst-content div.figure.align-center { + text-align: center; +} +.rst-content .section > img, .rst-content .section > a > img { + margin-bottom: 24px; +} +.rst-content blockquote { + margin-left: 24px; + line-height: 24px; + margin-bottom: 24px; +} +.rst-content .note .last, .rst-content .attention .last, .rst-content .caution .last, .rst-content .danger .last, .rst-content .error .last, .rst-content .hint .last, .rst-content .important .last, .rst-content .tip .last, .rst-content .warning .last, .rst-content .seealso .last, .rst-content .admonition-todo .last { + margin-bottom: 0; +} +.rst-content .admonition-title:before { + margin-right: 4px; +} +.rst-content .admonition table { + border-color: rgba(0, 0, 0, 0.1); +} +.rst-content .admonition table td, .rst-content .admonition table th { + background: transparent !important; + border-color: rgba(0, 0, 0, 0.1) !important; +} +.rst-content .section ol.loweralpha, .rst-content .section ol.loweralpha li { + list-style: lower-alpha; +} +.rst-content .section ol.upperalpha, .rst-content .section ol.upperalpha li { + list-style: upper-alpha; +} +.rst-content .section ol p, .rst-content .section ul p { + margin-bottom: 12px; +} +.rst-content .line-block { + margin-left: 24px; +} +.rst-content .topic-title { + font-weight: bold; + margin-bottom: 12px; +} +.rst-content .toc-backref { + color: #404040; +} +.rst-content .align-right { + float: right; + margin: 0px 0px 24px 24px; +} +.rst-content .align-left { + float: left; + margin: 0px 24px 24px 0px; +} +.rst-content .align-center { + margin: auto; + display: block; +} +.rst-content h1 .headerlink, .rst-content h2 .headerlink, .rst-content .toctree-wrapper p.caption .headerlink, .rst-content h3 .headerlink, .rst-content h4 .headerlink, .rst-content h5 .headerlink, .rst-content h6 .headerlink, .rst-content dl dt .headerlink, .rst-content p.caption .headerlink { + display: none; + visibility: hidden; + font-size: 14px; +} +.rst-content h1 .headerlink:after, .rst-content h2 .headerlink:after, .rst-content .toctree-wrapper p.caption .headerlink:after, .rst-content h3 .headerlink:after, .rst-content h4 .headerlink:after, .rst-content h5 .headerlink:after, .rst-content h6 .headerlink:after, .rst-content dl dt .headerlink:after, .rst-content p.caption .headerlink:after { + visibility: visible; + content: ""; + font-family: FontAwesome; + display: inline-block; +} +.rst-content h1:hover .headerlink, .rst-content h2:hover .headerlink, .rst-content .toctree-wrapper p.caption:hover .headerlink, .rst-content h3:hover .headerlink, .rst-content h4:hover .headerlink, .rst-content h5:hover .headerlink, .rst-content h6:hover .headerlink, .rst-content dl dt:hover .headerlink, .rst-content p.caption:hover .headerlink { + display: inline-block; +} +.rst-content .sidebar { + float: right; + width: 40%; + display: block; + margin: 0 0 24px 24px; + padding: 24px; + background: #f3f6f6; + border: solid 1px #e1e4e5; +} +.rst-content .sidebar p, .rst-content .sidebar ul, .rst-content .sidebar dl { + font-size: 90%; +} +.rst-content .sidebar .last { + margin-bottom: 0; +} +.rst-content .sidebar .sidebar-title { + display: block; + font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; + font-weight: bold; + background: #e1e4e5; + padding: 6px 12px; + margin: -24px; + margin-bottom: 24px; + font-size: 100%; +} +.rst-content .highlighted { + background: #F1C40F; + display: inline-block; + font-weight: bold; + padding: 0 6px; +} +.rst-content .footnote-reference, .rst-content .citation-reference { + vertical-align: super; + font-size: 90%; +} +.rst-content table.docutils.citation, .rst-content table.docutils.footnote { + background: none; + border: none; + color: #999; +} +.rst-content table.docutils.citation td, .rst-content table.docutils.citation tr, .rst-content table.docutils.footnote td, .rst-content table.docutils.footnote tr { + border: none; + background-color: transparent !important; + white-space: normal; +} +.rst-content table.docutils.citation td.label, .rst-content table.docutils.footnote td.label { + padding-left: 0; + padding-right: 0; + vertical-align: top; +} +.rst-content table.docutils.citation tt, .rst-content table.docutils.citation code, .rst-content table.docutils.footnote tt, .rst-content table.docutils.footnote code { + color: #555; +} +.rst-content table.field-list { + border: none; +} +.rst-content table.field-list td { + border: none; + padding-top: 5px; +} +.rst-content table.field-list td > strong { + display: inline-block; + margin-top: 3px; +} +.rst-content table.field-list .field-name { + padding-right: 10px; + text-align: left; + white-space: nowrap; +} +.rst-content table.field-list .field-body { + text-align: left; + padding-left: 0; +} +.rst-content tt, .rst-content tt, .rst-content code { + color: #000; +} +.rst-content tt big, .rst-content tt em, .rst-content tt big, .rst-content code big, .rst-content tt em, .rst-content code em { + font-size: 100% !important; + line-height: normal; +} +.rst-content tt.literal, .rst-content tt.literal, .rst-content code.literal { + color: #E74C3C; +} +.rst-content tt.xref, a .rst-content tt, .rst-content tt.xref, .rst-content code.xref, a .rst-content tt, a .rst-content code { + font-weight: bold; + color: #404040; +} +.rst-content a tt, .rst-content a tt, .rst-content a code { + color: #2980B9; +} +.rst-content dl { + margin-bottom: 24px; +} +.rst-content dl dt { + font-weight: bold; +} +.rst-content dl p, .rst-content dl table, .rst-content dl ul, .rst-content dl ol { + margin-bottom: 12px !important; +} +.rst-content dl dd { + margin: 0 0 12px 24px; +} +.rst-content dl:not(.docutils) { + margin-bottom: 24px; +} +.rst-content dl:not(.docutils) dt { + display: inline-block; + margin: 6px 0; + font-size: 90%; + line-height: normal; + background: #e7f2fa; + color: #2980B9; + border-top: solid 3px #6ab0de; + padding: 6px; + position: relative; +} +.rst-content dl:not(.docutils) dt:before { + color: #6ab0de; +} +.rst-content dl:not(.docutils) dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dl dt { + margin-bottom: 6px; + border: none; + border-left: solid 3px #cccccc; + background: #f0f0f0; + color: gray; +} +.rst-content dl:not(.docutils) dl dt .headerlink { + color: #404040; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) dt:first-child { + margin-top: 0; +} +.rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) tt, .rst-content dl:not(.docutils) code { + font-weight: bold; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname, .rst-content dl:not(.docutils) tt.descclassname, .rst-content dl:not(.docutils) code.descclassname { + background-color: transparent; + border: none; + padding: 0; + font-size: 100% !important; +} +.rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) tt.descname, .rst-content dl:not(.docutils) code.descname { + font-weight: bold; +} +.rst-content dl:not(.docutils) .optional { + display: inline-block; + padding: 0 4px; + color: #000; + font-weight: bold; +} +.rst-content dl:not(.docutils) .property { + display: inline-block; + padding-right: 8px; +} +.rst-content .viewcode-link, .rst-content .viewcode-back { + display: inline-block; + color: #27AE60; + font-size: 80%; + padding-left: 24px; +} +.rst-content .viewcode-back { + display: block; + float: right; +} +.rst-content p.rubric { + margin-bottom: 12px; + font-weight: bold; +} +.rst-content tt.download, .rst-content code.download { + background: inherit; + padding: inherit; + font-family: inherit; + font-size: inherit; + color: inherit; + border: inherit; + white-space: inherit; +} +.rst-content tt.download span:first-child:before, .rst-content code.download span:first-child:before { + margin-right: 4px; +} + +@media screen and (max-width: 480px) { + .rst-content .sidebar { + width: 100%; + } +} +span[id*='MathJax-Span'] { + color: #404040; +} + +.math { + text-align: center; +} + +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 400; + src: local("Inconsolata"), url(../fonts/Inconsolata.ttf) format("truetype"); +} +@font-face { + font-family: "Inconsolata"; + font-style: normal; + font-weight: 700; + src: local("Inconsolata Bold"), local("Inconsolata-Bold"), url(../fonts/Inconsolata-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 400; + src: local("Lato Regular"), local("Lato-Regular"), url(../fonts/Lato-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Lato"; + font-style: normal; + font-weight: 700; + src: local("Lato Bold"), local("Lato-Bold"), url(../fonts/Lato-Bold.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 400; + src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype"); +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 700; + src: local("Roboto Slab Bold"), local("RobotoSlab-Bold"), url(../fonts/RobotoSlab-Bold.ttf) format("truetype"); +} + +/*# sourceMappingURL=theme.css.map */ diff --git a/doc/_themes/lammps_theme/static/css/theme.css.map b/doc/_themes/lammps_theme/static/css/theme.css.map new file mode 100644 index 00000000..7e94d024 --- /dev/null +++ b/doc/_themes/lammps_theme/static/css/theme.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../../../bower_components/neat/app/assets/stylesheets/grid/_grid.scss","../../../bower_components/bourbon/dist/addons/_prefixer.scss","../../../bower_components/wyrm/sass/wyrm_core/_reset.sass","../../../bower_components/wyrm/sass/wyrm_core/_mixin.sass","../../../bower_components/font-awesome/scss/_path.scss","../../../bower_components/font-awesome/scss/_core.scss","../../../bower_components/font-awesome/scss/_larger.scss","../../../bower_components/font-awesome/scss/_fixed-width.scss","../../../bower_components/font-awesome/scss/_list.scss","../../../bower_components/font-awesome/scss/_variables.scss","../../../bower_components/font-awesome/scss/_bordered-pulled.scss","../../../bower_components/font-awesome/scss/_spinning.scss","../../../bower_components/font-awesome/scss/_rotated-flipped.scss","../../../bower_components/font-awesome/scss/_mixins.scss","../../../bower_components/font-awesome/scss/_stacked.scss","../../../bower_components/font-awesome/scss/_icons.scss","../../../bower_components/wyrm/sass/wyrm_core/_font_icon_defaults.sass","../../../bower_components/wyrm/sass/wyrm_core/_wy_variables.sass","../../../bower_components/wyrm/sass/wyrm_core/_alert.sass","../../../sass/_theme_variables.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_media.scss","../../../bower_components/wyrm/sass/wyrm_core/_button.sass","../../../bower_components/wyrm/sass/wyrm_core/_dropdown.sass","../../../bower_components/wyrm/sass/wyrm_core/_form.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_outer-container.scss","../../../bower_components/neat/app/assets/stylesheets/settings/_grid.scss","../../../bower_components/neat/app/assets/stylesheets/grid/_span-columns.scss","../../../bower_components/wyrm/sass/wyrm_core/_neat_extra.sass","../../../bower_components/wyrm/sass/wyrm_core/_generic.sass","../../../bower_components/wyrm/sass/wyrm_core/_table.sass","../../../bower_components/wyrm/sass/wyrm_core/_type.sass","../../../bower_components/wyrm/sass/wyrm_addons/pygments/_pygments.sass","../../../bower_components/wyrm/sass/wyrm_addons/pygments/_pygments_light.sass","../../../sass/_theme_breadcrumbs.sass","../../../sass/_theme_layout.sass","../../../bower_components/neat/app/assets/stylesheets/grid/_private.scss","../../../sass/_theme_badge.sass","../../../sass/_theme_rst.sass","../../../sass/_theme_mathjax.sass","../../../sass/_theme_font_local.sass"], +"names": [], +"file": "theme.css" +} diff --git a/doc/_themes/lammps_theme/static/fonts/FontAwesome.otf b/doc/_themes/lammps_theme/static/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..8b0f54e47e1d356dcf1496942a50e228e0f1ee14 GIT binary patch literal 62856 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