Usage Guide =========== This comprehensive guide covers all features and commands of OpenThermo with detailed examples and explanations. Quick Start ----------- **Basic Usage:** .. code-block:: bash # Calculate thermochemistry from quantum chemistry output OpenThermo molecule.log # Custom temperature and pressure OpenThermo molecule.log -T 300 -P 2.0 # Get help OpenThermo --help Command-Line Options ==================== Input and Output Options ------------------------ **``-E ``** - **Description**: Override electronic energy - **Units**: Atomic units (a.u.) - **Default**: Use value from input file - **Example**: ``-E -76.384729`` **``-T `` or ``-T ``** - **Description**: Temperature specification - **Units**: Kelvin (K) - **Default**: 298.15 K - **Examples**: - ``-T 300`` (single temperature) - ``-T 200 400 25`` (scan from 200K to 400K in 25K steps) **``-P

`` or ``-P ``** - **Description**: Pressure specification - **Units**: Atmospheres (atm) - **Default**: 1.0 atm - **Examples**: - ``-P 2.0`` (single pressure) - ``-P 0.5 2.0 0.2`` (scan from 0.5 to 2.0 atm in 0.2 atm steps) Thermochemistry Options ------------------------ **Frequency Scaling Factors:** - **``-sclZPE ``**: Scale factor for ZPE frequencies (default: 1.0) - **``-sclheat ``**: Scale factor for thermal energy frequencies (default: 1.0) - **``-sclS ``**: Scale factor for entropy frequencies (default: 1.0) - **``-sclCV ``**: Scale factor for heat capacity frequencies (default: 1.0) **Examples:** .. code-block:: bash OpenThermo molecule.log -sclZPE 0.98 -sclheat 0.99 Low Frequency Treatment Options -------------------------------- **``-lowvibmeth ``** - **Description**: Low frequency treatment method - **Values**: - ``0`` or ``Harmonic``: Standard RRHO (harmonic approximation) - ``1`` or ``Truhlar``: Truhlar's QRRHO (frequency raising) - ``2`` or ``Grimme``: Grimme's entropy interpolation (default) - ``3`` or ``Minenkov``: Minenkov's entropy + energy interpolation - ``4`` or ``HeadGordon``: Head-Gordon's energy interpolation (+ optional entropy) [Experimental] - **Example**: ``-lowvibmeth 1`` or ``-lowvibmeth Truhlar`` **``-ravib ``** - **Description**: Raising value for low frequencies (Truhlar's method) - **Units**: cm⁻¹ - **Default**: 100.0 - **Example**: ``-ravib 50.0`` **``-intpvib ``** - **Description**: Interpolation frequency threshold for Grimme, Minenkov, and Head-Gordon methods - **Units**: cm⁻¹ - **Default**: 100.0 - **Example**: ``-intpvib 50.0`` **``-hg_entropy ``** - **Description**: Enable or disable entropy interpolation for the Head-Gordon method - **Values**: ``true``/``false`` or ``1``/``0`` - **Default**: true - **Example**: ``-hg_entropy false`` **``-bav ``** - **Description**: Average moment of inertia (Bav) used in the free-rotor entropy term. **Only applicable to the HeadGordon method** (``lowvibmeth=4``). - **Values**: - ``grimme``: I_av = 1×10⁻⁴⁴ kg m² (μ'_av from Grimme 2012, used by ORCA/xtb/GoodVibes/Shermo) - ``qchem``: I_av = 2.79928×10⁻⁴⁶ kg m² (B_av = 1 cm⁻¹, as specified in the Q-Chem manual) - **Default**: ``qchem`` (for HeadGordon) - **Example**: ``-bav grimme`` **``-ipmode ``** - **Description**: Calculation mode - **Values**: - ``0``: Gas phase (include translational/rotational) - ``1``: Condensed phase (remove translational/rotational) - **Default**: 0 - **Example**: ``-ipmode 1`` **``-imagreal ``** - **Description**: Treat imaginary frequencies as real if |ν| < value - **Units**: cm⁻¹ - **Default**: 0.0 (no treatment) - **Example**: ``-imagreal 50.0`` Mass and Symmetry Options ------------------------- **``-massmod ``** - **Description**: Default atomic mass assignment - **Values**: - ``1``: Element average mass - ``2``: Most abundant isotope mass - ``3``: Masses from input file (default) - **Default**: 3 - **Example**: ``-massmod 2`` **``-PGname ``** - **Description**: Force specific point group - **Default**: Auto-detect - **Example**: ``-PGname C2v`` **``-conc ``** - **Description**: Concentration specification - **Default**: None - **Example**: ``-conc "2.5"`` Output Control Options ---------------------- **``-prtlevel ``** - **Description**: Controls the amount of information printed to the console - **Values**: - ``0``: Minimal — banner + final thermodynamic data only - ``1``: Default — parameter summary, compact system info (atom count, point group, frequency range), and final data - ``2``: Verbose — full system data (per-atom masses, full frequency list, moments of inertia, rotational constants) and component breakdown (Translation/Rotation/Vibration/Electronic sections) - ``3``: Full — everything in level 2 plus per-mode vibrational detail tables (automatically enables ``-prtvib 1`` unless explicitly overridden) - **Default**: 1 - **Examples**: - ``-prtlevel 0`` (minimal output for scripting) - ``-prtlevel 2`` (full output matching pre-0.001.1 behavior) **``-prtvib ``** - **Description**: Print vibration contributions - **Values**: - ``0``: No (default) - ``1``: Yes, to screen - ``-1``: Yes, to ``basename.vibcon`` file - **Default**: 0 - **Example**: ``-prtvib 1`` **``-outotm ``** - **Description**: Output OpenThermo format file - **Values**: - ``0``: No (default) - ``1``: Yes - **Default**: 0 - **Example**: ``-outotm 1`` OpenMP / Performance Options ------------------------------ **``-omp-threads ``** - **Description**: Set the number of OpenMP threads for parallel computation - **Default**: Half of the detected physical CPU cores (minimum 1), or half of scheduler-allocated CPUs on HPC - **HPC scheduler support**: Automatically detects allocated CPUs from ``SLURM_CPUS_PER_TASK``, ``PBS_NUM_PPN``, ``PBS_NP``, ``NSLOTS``, ``LSB_DJOB_NUMPROC`` - **Behavior**: - If not specified: uses half of effective cores (scheduler allocation or physical) - If ``N`` ≤ effective cores: uses ``N`` threads - If ``N`` > effective cores: clamps to default (half) with a warning - **Strategy auto-selection**: OpenThermo automatically selects the best parallelization strategy: - **Outer** (T/P scan parallel): when many T/P scan points are available (≥ nthreads) - **Inner** (vibrational parallel): when few T/P points but many frequencies (>50) - **Precedence**: CLI ``-omp-threads`` > ``settings.ini`` ``omp-threads`` > auto-detect - **Examples**: - ``-omp-threads 4`` (use 4 threads, if ≤ effective cores) - ``-omp-threads 2`` (use 2 threads) Help Options ------------ **``--help``** - **Description**: Show general help - **Example**: ``OpenThermo --help`` **``--help-