Get started

Here you will get an overview of first steps you need to use Dyssol, including installation, introduction to the graphical user interface (GUI).


Installation

After installation, you can find the following folders and files in the installation directory \Program Files\Dyssol.

  • Folders:

    Example flowsheets: flowsheet examples

    Example units: source code of units written in C++

    Example solvers: source code of solvers written in C++

    Help: documentation files in form of PDF

    Licenses: information about licenses

    Solvers: libraries of developed solvers

    Units: libraries of developed units

    VCProject: template project for Microsoft Visual Studio

  • Files:

    Dyssol.exe: executable file of Dyssol program

    DyssolC.exe: command line utility of Dyssol program

    ExampleConfigFile.txt: example configuration file for command line utility

    LICENSE: license agreement

    Materials.dmdb: default materials database

    unins000.dat: shortcut for Dyssol uninstaller


Introduction to GUI

After installation and launching Dyssol, you will see the GUI, which is introduced below by corresponding screenshots.

Tabs

Tabs are needed for the parameter setup. They are named by Flowsheet, Simulator, Streams and Units.


Flowsheet

  • Units:

  • Streams:

  • Model selection:

  • Ports connection:

  • Unit parameters:


Simulator

Here you can start your simulation based on your time input.


Stream

Here you will find the simulation results, including the stream results summarized in table and plot.

  • Table view:

  • Plot view:


Units

In Units tab, you can control the operation units.


Run your first simulation

In Dyssol, you can simulate your process either by the normal graphical user interface or by a pre-difined configuration file.

Graphical user interface

Here you can find a detailed guide for simulating the Screen process.

A flowsheet of this example is shown below with all stream names.


You need to follow these 12 steps to complete the simulation and analyze the result.

  1. Add units to the flowsheet and name them:

  2. Add streams to the flowsheet and name them:

  3. Select a model for each unit on the flowsheet:

  4. Connect ports of each unit to the streams:

  5. Setup parameters of units:

  6. Add compounds to the flowsheet:

  7. Add phases to the flowsheet:

  8. Specify grids for distributed parameters of solids:

  9. Setup feeds of inlets and holdups of units:

  10. Specify the simulation time:

  11. Run the simulation:

  12. Analyze the results:


Configuration file

You may start your simulation by command lines with the help of DyssolC.exe, which can be found in the installation directory. The command DyssolC can be started from the command prompt.

As the single input argument, a configuration file (in the following case named script.txt) must be loaded.

> DyssolC.exe script.txt

The configuration file is a text file describing all necessary parameters for your simulation file. Details about the parameters are described in the tables below.

You can find an exemplary configuration file ExampleConfigFile.txt in the installation directory.

Only 3 parameters from the list are mandatory parameters: SOURCE_FILE, MODELS_PATH, MATERIALS_DATABASE. The rest are optional and will override parameters set in initial file, specified as SOURCE_FILE. If RESULT_FILE parameter is not specified, results of the simulation will be written to a SOURCE_FILE.

Parameters MODELS_PATH, DISTRIBUTION_GRID, UNIT_PARAMETER, UNIT_HOLDUP_* can be mentioned several times in the script file, the rest should be places only ones.

You can find the lists of all available parameters in the configuration file.

General

Identifier

Parameter

SOURCE_FILE: Full path to the *.dflw file with initial flowsheet

C:\Path\to\source\file.dflw

RESULT_FILE: Full path to the file where simulation results will be written

C:\Path\to\result\file.dflw

MODELS_PATH: Path to the directory where *.dll libraries of units and solvers can be found

C:\Path\to\dir\with\models\

MATERIALS_DATABASE: Full path to the file with materials database

C:\Path\to\database.dmdb


Simulation

Identifier

Parameter

SIMULATION_TIME: End simulation time in [s]

<value>


Options

Identifier

Parameter

RELATIVE_TOLERANCE

<value>

ABSOLUTE_TOLERANCE

<value>

MINIMAL_FRACTION

<value>

INIT_TIME_WINDOW

<value>

MIN_TIME_WINDOW

<value>

MAX_TIME_WINDOW

<value>

MAX_ITERATIONS_NUM

<value>

WINDOW_CHANGE_RATE

<value>

ITER_UPPER_LIMIT

<value>

ITER_LOWER_LIMIT

<value>

ITER_UPPER_LIMIT_1

<value>

CONVERGENCE_METHOD

<method> represented by numbers:

<method> = 0 – Direct substitution

<method> = 1 – Wegstein

<method> = 2 – Steffensen

ACCEL_PARAMETER: Parameter of Wegstein’s method

<value>

RELAX_PARAMETER: Parameter of Direct Substitution method

<value>

EXTRAPOL_METHOD: Extrapolation method

<method> represented by numbers:

<method> = 0 – Linear

<method> = 1 – Cubic spline

<method> = 2 – Nearest neighbor


Grids

Identifier

Parameter

DISTRIBUTION_GRID: Specification of meshes for distributed parameters of solids

General form:

<distribution> <type> <classes> [<grid>] (<min> <max> | <boundaries> | <names>)

For Continuous not Manual:

<distribution> <type> <classes> <grid> <min> <max>

For Discrete or Continuous Manual:

<distribution> <type> <classes> <boundaries>

For Symbolic:

<distribution> <type> <classes> <names>

<distribution> – index of the distribution as it stated in Grid Specification window

<type> – distribution type represented by numbers:

<type> = 0 – Continuous

<type> = 1 – Discrete

<type> = 2 – Symbolic

<classes> – number of classes

<grid> – type of the grid (if <type> = 0) represented by numbers:

<grid> = 0 – Manual

<grid> = 1 – Equidistant

<grid> = 2 – Geometric increasing

<grid> = 3 – Logarithmic increasing

<grid> = 4 – Geometric decreasing

<grid> = 5 – Logarithmic decreasing

<min> – min value, if <type> = 0 and <grid> \(\neq\) 0

<max> – max value, if <type> = 0 and <grid> \(\neq\) 0

<boundaries> – class boundary values, if (<type> = 0 and <grid> = 0) or (<type> = 1)

<names> – names of classes boundary values (if <type> = 2)


Unit parameters

Identifier

Parameter

UNIT_PARAMETER: Specification of unit parameters

General form:

<unit> <parameter> (<value> | <time> <value> [<time> <value> […]] | <string> | <solver>)

For constant parameter:

<unit> <parameter> <value>

For time-dependent parameter:

<unit> <parameter> <time> <value> [<time> <value> […]]

For string parameter:

<unit> <parameter> <string>

For solver parameter:

<unit> <parameter> <solver>

<unit> – index of the unit

<parameter> – index of the parameter

<value> – numerical value of the parameter

<time> – value of the time point (for time-dependent parameters)

<string> – numerical value of the parameter (for string parameters)

<solver> – name of a *.dll file with solver (for solver parameter)


Holdups

Identifier

Parameter

UNIT_HOLDUP_MTP: Specification of holdups: mass, temperature and pressure

<unit> <holdup> <timepoint> <mass> <temperature> <pressure> with:

<unit> – index of the unit

<holdup> – index of the holdup in the unit

<timepoint> – index of the time point

<mass> – mass value

<temperature> – temperature value

<pressure> – pressure value

UNIT_HOLDUP_PHASES: Specification of holdups: phase fractions

<unit> <holdup> <timepoint> <fraction> [fraction […]] with:

<unit> – index of the unit

<holdup> – index of the holdup in the unit

<timepoint> – index of the time point

<fraction> – mass fraction of the phase, number of parameters must correspond to the number of phases

UNIT_HOLDUP_COMP: Specification of holdups: compound fractions in phase

<unit> <holdup> <phase> <timepoint> <fraction> [fraction […]] with:

<unit> – index of the unit

<holdup> – index of the holdup in the unit

<phase> – index of the phase

<timepoint> – index of the time point

<fraction> – mass fraction of the compound, number of parameters must correspond to the number of compounds

UNIT_HOLDUP_SOLID: Specification of holdups: distributed parameters of solids

<unit> <holdup> <distribution> <compound> <timepoint> <psdtype> <function> <psdgridtype> (<param1> <param2> | <values>) with:

<unit> – index of the unit

<holdup> – index of the holdup in the unit

<distribution> – index of the distribution as specified in Distributions Sequence

<compound> – index of the compound, <compound> = 0 for total mixture

<timepoint> – index of the time point

<psdtype> – PSD type, if <distribution> corresponds to a PSD. Represented with numbers:

<psdtype> = -1 – Not a PSD

<psdtype> = 0 – q3

<psdtype> = 1 – Q3

<psdtype> = 2 – q0

<psdtype> = 3 – Q0

<psdtype> = 4 – Mass fraction

<psdtype> = 5 – Number

<psdtype> = 6 – q2

<psdtype> = 7 – Q2

<function> – index of the distribution function represented by numbers:

<function> = 0 – Manual

<function> = 1 – Normal distribution

<function> = 2 – RRSB

<function> = 3 – GGS

<function> = 4 – Logarithmic Normal

<psdgridtype> – type of the grid if <distribution> corresponds to a PSD:

<psdgridtype> = -1 – Not a PSD

<psdgridtype> = 0 – Diameters

<psdgridtype> = 1 – Volumes

<param1>, <param2> – parameters of the distribution function (only if <function> \(\neq\) 0)

<values> – list of distribution values (only if <function> = 0)