OPM / opm-simulators

Simulator programs and utilities for automatic differentiation.
http://www.opm-project.org
GNU General Public License v3.0
110 stars 119 forks source link

Feature Request: Flow Command Line Help #1506

Closed OPMUSER closed 6 years ago

OPMUSER commented 6 years ago

Add the help option to the flow binary command line, as per the standard on Linux/Unix systems that is:

flow -h or flow -help

Should list out all the command line options with associated options.

andlaus commented 6 years ago

I'm currently working on this: this is achieved automatically by switching to the eWoms parameter system as decided at this year's developer meeting in Oslo. You can have a preview of the functionality using ebos --help (the ebos binary is part of ewoms).

OPMUSER commented 6 years ago

Thanks.

How do you install ebos under a Unbuntu system?

akva2 commented 6 years ago

Clevely hidden as sudo apt install ebos

OPMUSER commented 6 years ago

Yes, that works.

So are you incorporating all the options listed in the 2017-10 manual? I just want to ensure that program and the manual are consistent. If not let me know and I'll update the manual accordingly.

andlaus commented 6 years ago

I have doubts about whether it is worthwhile to document all parameters in the manual individually: in #1512 there are currently 130+ of them and we want some flexibility in the parameter definition because OPM is not yet in a "fixes only" development mode. It would be good if you mentioned -h in the handbook, though.

OPMUSER commented 6 years ago

I only have 44 flow command line options documented in the manual how did you get 130+?

If indeed there are over 130 then for the time being we should just document the ones currently documented in the manual as they appear to be more user orientated.

andlaus commented 6 years ago

after #1512 you get this:

> ./bin/flow --help
Usage: ./bin/flow [OPTIONS] [ECL_DECK_FILENAME]
ebos, the Ecl Black-Oil reservoir Simulator. A program to process ECL input files.

Recognized options:
    -h,--help                                     Print this help message and exit
    --ecl-deck-file-name=VALUE                    The name of the file which contains the ECL deck to be simulated
    --ecl-output-dir=VALUE                        The directory to which the ECL result files are written
    --ecl-output-double-precision=BOOLEAN         Tell the output writer to use double precision. Useful for 'perfect' restarts
    --ecl-output-interval=INTEGER                 The number of report steps that ought to be skipped between two writes of ECL results
    --enable-async-ecl-output=BOOLEAN             Write the ECL-formated results in a non-blocking way (i.e., using a separate thread).
    --enable-async-vtk-output=BOOLEAN             Dispatch a separate thread to write the VTK output
    --enable-ecl-output=BOOLEAN                   Write binary output which is compatible with the commercial Eclipse simulator
    --enable-gravity=BOOLEAN                      Use the gravity correction for the pressure gradients.
    --enable-grid-adaptation=BOOLEAN              Enable adaptive grid refinement/coarsening
    --enable-intensive-quantity-cache=BOOLEAN     Turn on caching of intensive quantities
    --enable-storage-cache=BOOLEAN                Store previous storage terms and avoid re-calculating them.
    --enable-thermodynamic-hints=BOOLEAN          Enable thermodynamic hints
    --enable-vtk-output=BOOLEAN                   Global switch for turing on writing VTK files
    --enable-write-all-solutions=BOOLEAN          Write all solutions to disk instead of only the ones for the report steps
    --end-time=SCALAR                             The simulation time at which the simulation is finished [s]
    --flow-d-well-fraction-max=SCALAR             Maximum absolute change of a well's volume fraction in a single iteration
    --flow-dbph-max-rel=SCALAR                    Maximum relative change of the bottom-hole pressure in a single iteration
    --flow-dp-max-rel=SCALAR                      Maximum relative change of pressure in a single iteration
    --flow-dr-max-rel=SCALAR                      Maximum relative change of the gas-in-oil or oil-in-gas ratio in a single iteration
    --flow-ds-max=SCALAR                          Maximum absolute change of any saturation in a single iteration
    --flow-enable-adaptive-time-stepping=BOOLEAN  Use adaptive time stepping between report steps
    --flow-enable-dry-run=VALUE                   Specify if the simulation ought to be actually run, or just pretended to be
    --flow-enable-terminal-output=BOOLEAN         Print high-level information about the simulation's progress to the terminal
    --flow-enable-tuning=BOOLEAN                  Honor some aspects of the TUNING keyword.
    --flow-full-time-step-initially=BOOLEAN       Always attempt to finish a report step using a single substep
    --flow-ilu-fillin-level=INTEGER               The fill-in level of the linear solver's ILU preconditioner
    --flow-ilu-relaxation=SCALAR                  The relaxation factor of the linear solver's ILU preconditioner
    --flow-initial-time-step-in-days=SCALAR       The size of the initial time step in days
    --flow-linear-solver-ignore-convergence-failure=BOOLEAN  Continue with the simulation like nothing happened after the linear solver did not converge
    --flow-linear-solver-max-iter=INTEGER         The maximum number of iterations of the linear solver
    --flow-linear-solver-reduction=SCALAR         The minimum reduction of the residual which the linear solver must achieve
    --flow-linear-solver-require-full-sparsity-pattern=BOOLEAN  Produce the full sparsity pattern for the linear solver
    --flow-linear-solver-restart=INTEGER          The number of iterations after which GMRES is restarted
    --flow-linear-solver-verbosity=INTEGER        The verbosity level of the linear solver (0: off, 2: all)
    --flow-matrix-add-well-contributions=BOOLEAN  Explicitly specify the influences of wells between cells in the Jacobian and preconditioner matrices
    --flow-max-inner-iter-ms-wells=INTEGER        Maximum number of inner iterations for multi-segment wells
    --flow-max-pressure-change-ms-wells=SCALAR    Maximum relative pressure change for a single iteration of the multi-segment well model
    --flow-max-residual-allowed=SCALAR            Absolute maximum tolerated for residuals without cutting the time step size
    --flow-max-single-precision-days=SCALAR       Maximum time step size where single precision floating point arithmetic can be used solving for the linear systems of equations
    --flow-max-strict-iter=INTEGER                Maximum number of Newton iterations before relaxed tolerances are used for the CNV convergence criterion
    --flow-max-welleq-iter=INTEGER                Maximum number of iterations to determine solution the  well equations
    --flow-newton-max-iterations=SCALAR           The maximum number of Newton iterations per time step used by flow
    --flow-newton-max-relax=SCALAR                The maximum relaxation factor of a Newton iteration used by flow
    --flow-newton-min-iterations=SCALAR           The minimum number of Newton iterations per time step used by flow
    --flow-newton-relaxation-type=VALUE           The type of relaxation used by flow's Newton method
    --flow-output-interval=INTEGER                Specify the number of report steps between two consecutive writes of restart data
    --flow-output-mode=VALUE                      Specify which messages are going to be printed. Valid values are: none, log, all (default)
    --flow-preconditioner-add-well-contributions=BOOLEAN  Explicitly specify the influences of wells between cells for the preconditioner matrix only
    --flow-solve-welleq-initially=BOOLEAN         Fully solve the well equations before each iteration of the reservoir model
    --flow-solver-growth-factor=SCALAR            The factor time steps are elongated after a successful substep
    --flow-solver-max-growth=SCALAR               The maximum factor time steps are elongated after a report step
    --flow-solver-max-restarts=INTEGER            The maximum number of breakdowns before a substep is given up and the simulator is terminated
    --flow-solver-max-time-step-in-days=SCALAR    The maximum size of a time step in days
    --flow-solver-restart-factor=SCALAR           The factor time steps are elongated after restarts
    --flow-solver-verbosity=INTEGER               Specify the "chattiness" of the non-linear solver itself
    --flow-time-step-after-event-in-days=SCALAR   Time step size of the first time step after an event occurs during the simulation in days
    --flow-time-step-control=VALUE                The algorithm used to determine time-step sizes. valid options are: 'pid' (default), 'pid+iteration', 'pid+newtoniteration', 'iterationcount' and 'hardcoded'
    --flow-time-step-control-decay-rate=SCALAR    The decay rate of the time step size of the number of target iterations is exceeded
    --flow-time-step-control-file-name=VALUE      The name of the file which contains the hardcoded time steps sizes
    --flow-time-step-control-growth-rate=SCALAR   The growth rate of the time step size of the number of target iterations is undercut
    --flow-time-step-control-target-iterations=INTEGER  The number of linear iterations which the time step control scheme should aim for (if applicable)
    --flow-time-step-control-target-newton-iterations=INTEGER  The number of Newton iterations which the time step control scheme should aim for (if applicable)
    --flow-time-step-control-tolerance=SCALAR     The tolerance used by the time step size control algorithm
    --flow-time-step-verbosity=INTEGER            Specify the "chattiness" during the time integration
    --flow-tolerance-cnv=SCALAR                   Local convergence tolerance (Maximum of local saturation errors)
    --flow-tolerance-cnv-relaxed=SCALAR           Relaxed local convergence tolerance that applies for iterations after the iterations with the strict tolerance
    --flow-tolerance-mb=SCALAR                    Tolerated mass balance error relative to total mass present
    --flow-tolerance-pressure-ms-wells=SCALAR     Tolerance for the pressure equations for multi-segment wells
    --flow-tolerance-well-control=SCALAR          Tolerance for the well control equations
    --flow-tolerance-wells=SCALAR                 Well convergence tolerance
    --flow-update-equations-scaling=BOOLEAN       Update scaling factors for mass balance equations during the run
    --flow-use-amg=BOOLEAN                        Use AMG as the linear solver's preconditioner
    --flow-use-cpr=BOOLEAN                        Use CPR as the linear solver's preconditioner
    --flow-use-gmres=BOOLEAN                      Use GMRES as the linear solver
    --flow-use-inner-iterations-ms-wells=BOOLEAN  Use nested iterations for multi-segment wells
    --flow-use-multisegment-well=BOOLEAN          Use the well model for multi-segment wells instead of the one for single-segment wells
    --flow-use-update-stabilization=BOOLEAN       Try to detect and correct oscillations or stagnation during the Newton method
    --initial-time-step-size=SCALAR               The size of the initial time step [s]
    --linear-solver-max-error=SCALAR              The maximum residual error which the linear solver tolerates without giving up
    --linear-solver-max-iterations=INTEGER        The maximum number of iterations of the linear solver
    --linear-solver-overlap-size=INTEGER          The size of the algebraic overlap for the linear solver
    --linear-solver-tolerance=SCALAR              The maximum allowed error between of the linear solver
    --linear-solver-verbosity=INTEGER             The verbosity level of the linear solver
    --max-time-step-divisions=INTEGER             The maximum number of divisions by two of the timestep size before the simulation bails out
    --max-time-step-size=SCALAR                   The maximum size to which all time steps are limited to [s]
    --min-time-step-size=SCALAR                   The minimum size to which all time steps are limited to [s]
    --newton-max-error=SCALAR                     The maximum error tolerated by the Newton method to which does not cause an abort
    --newton-max-iterations=INTEGER               The maximum number of Newton iterations per time step
    --newton-raw-tolerance=SCALAR                 The maximum raw error tolerated by the Newtonmethod for considering a solution to be converged
    --newton-target-iterations=INTEGER            The 'optimum' number of Newton iterations per time step
    --newton-verbose=BOOLEAN                      Specify whether the Newton method should inform the user about its progress or not
    --newton-write-convergence=BOOLEAN            Write the convergence behaviour of the Newton method to a VTK file
    --parameter-file=VALUE                        An .ini file which contains a set of run-time parameters
    --preconditioner-relaxation=SCALAR            The relaxation factor of the preconditioner
    --predetermined-time-steps-file=VALUE         A file with a list of predetermined time step sizes (one time step per line)
    --print-parameters=INTEGER                    Print the values of the run-time parameters at the start of the simulation
    --print-properties=INTEGER                    Print the values of the compile time properties at the start of the simulation
    --restart-time=SCALAR                         The simulation time at which a restart should be attempted [s]
    --restart-writing-interval=INTEGER            The frequencies of which time steps are serialized to disk
    --threads-per-process=INTEGER                 The maximum number of threads to be instantiated per process ('-1' means 'automatic')
    --vtk-write-average-molar-masses=BOOLEAN      Include the average phase mass in the VTK output files
    --vtk-write-densities=BOOLEAN                 Include the phase densities in the VTK output files
    --vtk-write-dof-index=BOOLEAN                 Include the index of the degrees of freedom into the VTK output files
    --vtk-write-extrusion-factor=BOOLEAN          Include the extrusion factor of the degrees of freedom into the VTK output files
    --vtk-write-filter-velocities=BOOLEAN         Include in the filter velocities of the phases the VTK output files
    --vtk-write-fugacities=BOOLEAN                Include component fugacities in the VTK output files
    --vtk-write-fugacity-coeffs=BOOLEAN           Include component fugacity coefficients in the VTK output files
    --vtk-write-gas-dissolution-factor=BOOLEAN    Include the gas dissolution factor (R_s) of the observed oil in the VTK output files
    --vtk-write-gas-formation-volume-factor=BOOLEAN  Include the gas formation volume factor (B_g) in the VTK output files
    --vtk-write-gas-saturation-pressure=BOOLEAN   Include the saturation pressure of gas (p_g,sat) in the VTK output files
    --vtk-write-intrinsic-permeabilities=BOOLEAN  Include the intrinsic permeability in the VTK output files
    --vtk-write-mass-fractions=BOOLEAN            Include mass fractions in the VTK output files
    --vtk-write-mobilities=BOOLEAN                Include the phase mobilities in the VTK output files
    --vtk-write-molarities=BOOLEAN                Include component molarities in the VTK output files
    --vtk-write-mole-fractions=BOOLEAN            Include mole fractions in the VTK output files
    --vtk-write-oil-formation-volume-factor=BOOLEAN  Include the oil formation volume factor (B_o) in the VTK output files
    --vtk-write-oil-saturation-pressure=BOOLEAN   Include the saturation pressure of oil (p_o,sat) in the VTK output files
    --vtk-write-oil-vaporization-factor=BOOLEAN   Include the oil vaporization factor (R_v) of the observed gas in the VTK output files
    --vtk-write-porosity=BOOLEAN                  Include the porosity in the VTK output files
    --vtk-write-potential-gradients=BOOLEAN       Include the phase pressure potential gradients in the VTK output files
    --vtk-write-pressures=BOOLEAN                 Include the phase pressures in the VTK output files
    --vtk-write-primary-vars=BOOLEAN              Include the primary variables into the VTK output files
    --vtk-write-primary-vars-meaning=BOOLEAN      Include how the primary variables should be interpreted to the VTK output files
    --vtk-write-process-rank=BOOLEAN              Include the MPI process rank into the VTK output files
    --vtk-write-relative-permeabilities=BOOLEAN   Include the phase relative permeabilities in the VTK output files
    --vtk-write-saturated-gas-oil-vaporization-factor=BOOLEAN  Include the oil vaporization factor (R_v,sat) of oil saturated gas in the VTK output files
    --vtk-write-saturated-oil-gas-dissolution-factor=BOOLEAN  Include the gas dissolution factor (R_s,sat) of gas saturated oil in the VTK output files
    --vtk-write-saturation-ratios=BOOLEAN         Write the ratio of the actually and maximum dissolved component of the mixtures
    --vtk-write-saturations=BOOLEAN               Include the phase saturations in the VTK output files
    --vtk-write-temperature=BOOLEAN               Include the temperature in the VTK output files
    --vtk-write-total-mass-fractions=BOOLEAN      Include total mass fractions in the VTK output files
    --vtk-write-total-mole-fractions=BOOLEAN      Include total mole fractions in the VTK output files
    --vtk-write-viscosities=BOOLEAN               Include component phase viscosities in the VTK output files
    --vtk-write-water-formation-volume-factor=BOOLEAN  Include the water formation volume factor (B_w) in the VTK output files

IOW, 135 parameters. Most of them should come from core ebos, but maybe you missed a few in the handbook.

OPMUSER commented 6 years ago

I only have 44 flow command line options documented in the manual how did you get 130+?

If indeed there are over 130 then for the time being we should just document the ones currently documented in the manual as they appear to be more user orientated.

OPMUSER commented 6 years ago

Okay, I'll keep the old version for and add this set in as well for flow-ebos and for version 2018-10 in case people use both. Once 2018-10 is out I'll delete the flow entries from the manual.

You can close the ticket if you wish.