EOS text input
EOS reads keyword-directed tabular files. The FORMAT declaration is the
single authority that defines the meaning and order of the numeric columns.
The table continues until end of file, so a row count is not required. This
keeps experimental data independent from the fit plan: EOS family, order,
parameter constraints, and numerical solver belong to an
FitRequest or a batch specification. The
measurement table may carry only non-destructive data organization through
GROUP and USE columns or a trailing * exclusion marker.
The reader accepts both historical Quantas files and common EosFit-style files. Keyword matching is case-insensitive, commas and whitespace can both separate columns, and a trailing colon is accepted. Thus all of the following are valid:
FORMAT P V SIGP SIGV
Format 1, P, V, SigP, SigV
format: T, sigT, P, sigP, V, sigV
Minimal examples
EosFit-style P-V table:
TITLE Quartz compression data
FORMAT 1 P V SIGP SIGV
0.001 112.981 0.000001 0.002
0.430 111.725 0.008000 0.014
Historical Quantas layout:
JOB
Quartz compression data
FORMAT
P V sigmaP sigmaV
DATA
0.001 112.981 0.000001 0.002
Simple isobaric V-T table without a pressure column:
TITLE Triclinic phase thermal expansion
FORMAT 1 T V
91.8534 667.631
95.1401 667.641
A constant pressure may also be included as an experimental condition:
TITLE Rutile relative expansion
TSCALE K
VSCALE V/V0
LSCALE L/L0
FORMAT: T, SIGT, P, SIGP, V, SIGV, A, SIGA, C, SIGC
303 3 0.0001 0.000001 1.0000 0.0005 1.0000 0.0003 1.0001 0.0003
Here the pressure column records an isobaric reference condition. Because it is constant, it cannot constrain a P-V EOS; it remains valid and useful metadata for a V-T analysis.
Keywords
TITLEorJOBOptional free-text dataset description. The value may follow on the same line or on the next non-comment line.
COMMENTOptional free-text note retained in dataset metadata. Repeated declarations are allowed.
FORMATMandatory ordered column declaration. It may appear on the same line or the next non-comment line.
FORMAT 1 ...is accepted for compatibility with one-line EosFit records. Multi-line records are not yet supported.DATAOptional marker for the start of the numeric table. When omitted, the first non-keyword line after
FORMATstarts the table.SYSTEMOptional crystal-system label normalized to one of
triclinic,monoclinic,orthorhombic,tetragonal,trigonal,hexagonal, orcubic.rhombohedralis accepted as an alias oftrigonal. The current fitting workflows retain the system as scientific metadata and record the independent conventional axes; they do not invent missing cell parameters or impose directional constraints.TSCALEOptional temperature scale:
K,C, orF. Celsius and Fahrenheit values are converted to Kelvin. Original values and their input scale remain available in the raw columns and metadata.VSCALEDeclares how volume-like values are represented.
VSCALE V/V0marksVandSIGVas dimensionless ratios relative to a reference volume.VSCALE absoluterestores the default dimensional interpretation.LSCALEDeclares how linear quantities are represented.
LSCALE L/L0marksA,B,Cand their sigma columns as dimensionless ratios relative to reference lengths.LSCALE absoluteis the default.UNITSOptional
COLUMN=UNITdeclarations, for exampleUNITS P=GPa V=angstrom^3. No silent conversion is currently applied except for temperature scales. A normalizedVSCALEorLSCALEis incompatible with a dimensional unit declaration and is rejected rather than silently reinterpreted.PROVENANCEOptional free-text source description attached to every provided column.
Columns
Column names are case-insensitive and accept short aliases.
Canonical quantity |
Common input aliases |
|---|---|
pressure |
|
sigma_pressure |
|
temperature |
|
sigma_temperature |
|
volume |
|
sigma_volume |
|
energy |
|
sigma_energy |
|
a, b, c |
|
sigma_a/b/c |
|
alpha, beta, gamma |
full angle names |
sigma angles |
|
group |
|
use |
|
All normalized numerical arrays use float64. Every uncertainty column must
have its corresponding measured quantity, and negative uncertainties are
rejected. Raw and normalized columns are both retained by EOSDataset for
future self-contained HDF5 persistence.
Non-destructive selection and groups
A dataset may identify experimental groups and its default fitting selection
without deleting observations. GROUP values are positive integers. USE
accepts 1/0, yes/no, or equivalent boolean words. A trailing
* excludes a row regardless of the USE value and is convenient when
editing an existing EosFit-style table:
TITLE Two experimental campaigns
SYSTEM tetragonal
FORMAT P V SIGP SIGV GROUP USE
0.0 100.00 0.01 0.02 1 1
1.0 99.30 0.01 0.02 1 1 *
0.0 100.05 0.02 0.03 2 1
2.0 98.61 0.02 0.03 2 0
The table contains four observations, but only the first and third are selected
by default. Quantas reports total, selected, and excluded counts overall and for
each group. Every row remains available through EOSDataset and is
stored in the native HDF5 archive.
The Python API uses the dataset default selection whenever an
EOSFitRequest has no explicit mask. A strict EOS batch specification
can start from either the default selection or all rows and can then select
groups or one-based row numbers. See EOS batch specification.
from quantas.api import eos
dataset = eos.read_input("grouped.dat")
print(dataset.selected_npoints, dataset.excluded_npoints)
print(dataset.group_summary())
An explicit API mask is a final selection and may intentionally override the input default. This permits a GUI or analysis script to re-enable a previously excluded observation without modifying the source table.
Absolute and normalized structural data
Without scale keywords, the default units are angstrom^3 for volume and
angstrom for cell lengths. With VSCALE V/V0 or LSCALE L/L0, the
stored normalized values and uncertainties are dimensionless. No multiplication
by an unknown reference value is attempted.
Relative data remain sufficient for thermal-expansion coefficients because a constant scale factor cancels in logarithmic derivatives:
A V-T fit result reports whether its reference
quantity is an absolute volume/length or a dimensionless ratio. The reader
therefore stores a per-column scale map in
dataset.metadata["column_scales"].
Coordinate classification
The presence of a column does not prove that it can act as an independent fitting coordinate. EOS classifies each measured quantity using its selected numeric range:
from quantas.api import eos
dataset = eos.read_input("rutile.dat")
classification = dataset.classify()
classification.is_isobaric
classification.reference_pressure
classification.variable_coordinates
classification.constant_coordinates
For each coordinate, classification records the minimum, maximum, span, unit, constancy tolerance, and—only for a constant coordinate—the reference value. Classification can be recomputed for a mask, which is important when a subset of a larger P-T table represents one isobar or one isotherm.
A constant pressure is interpreted as an isobaric reference condition. It is valid for V-T or L-T data but cannot constrain a pressure-volume equation. The P-V API rejects such a request before solver dispatch with a scientific error message. A constant temperature is handled analogously as an isothermal reference condition.
Selecting V-T data
The reader and public dataset contract support frontend-neutral V–T series independently of the thermal model selected for fitting:
from quantas.api import eos
dataset = eos.read_input("rutile.dat")
vt = dataset.series("volume", independent="temperature")
at = dataset.series("a", independent="temperature")
The returned series contains available sigma columns, units, selection mask, and absolute or normalized scale metadata. Selecting a series does not choose a thermal-expansion equation or numerical solver.
Data and fit plans
The tabular file describes measurements, units, scales, reference conditions,
and provenance, plus an optional default non-destructive selection. EOS
family, order, fixed parameters, bounds, job-specific masks, and statistical
method belong to an FitRequest or a batch
specification. This separation allows one experimental dataset to be reused in
several fits without deleting or rewriting observations.
Compatibility data
The test suite contains unchanged reference files in all currently supported layouts:
PV_quartz.datEosFit-style
FORMAT 1 P V SigP SigVP-V data.PV_topaz.datHistorical Quantas
JOB/FORMAT/DATAP-V data with volume anda,b, andc.T_triclinic.datSimple
FORMAT 1 T Vthermal-expansion table without pressure.rutile.datMixed-case keywords,
COMMENTrecords,FORMAT:, constant pressure, and normalizedV/V0andL/L0quantities.
P–V–T tables
A global P–V–T fit uses the same declared-column syntax. The minimum table is
TITLE Example P-V-T dataset
FORMAT P SIGP V SIGV T SIGT
0.0 0.02 100.00 0.002 300.0 0.2
5.0 0.02 97.10 0.002 300.0 0.2
0.0 0.02 101.00 0.002 600.0 0.2
5.0 0.02 98.00 0.002 600.0 0.2
Column order is arbitrary because FORMAT remains authoritative. Pressure,
volume, and temperature must all vary within the selected observations for a
global P–V–T fit. A constant-pressure table is classified as isobaric and is
valid for V–T; a constant-temperature table is classified as isothermal and
is valid for P–V. Storing the constant coordinate is useful provenance but
does not add fitting information.
sigma_pressure is used by WLS. Effective variance can use all available
sigma_pressure, sigma_volume, and sigma_temperature terms. P–V–T
ODR requires all three uncertainty columns to be finite and strictly positive
for every selected observation.
The data file does not select the P–V EOS, V–T EOS, coupling prescription,
FREE/FIXED parameters, or numerical solver. Those choices belong to
EOSFitRequest and, later, to the batch plan, so the same measurements can be
reused in global and controlled analyses.
CLI unit overrides
quantas eos run accepts --pressure-unit, --length-unit, and
--temperature-unit. Explicit command-line units override declarations in
the input file. Without either source, EOS assumes GPa, Angstrom/Angstrom
cubed, and kelvin. Absolute values and their standard uncertainties are
normalized together; the raw arrays and original unit labels remain available
in Dataset and in the native HDF5 archive.
The length unit defines both cell-length columns and the cube used by absolute
volume columns. Supported metric length scales include metre, centimetre,
millimetre, micrometre, nanometre, and picometre, in addition to Angstrom and
Bohr. Relative declarations VSCALE V/V0 and LSCALE L/L0 remain
dimensionless and are not converted by a physical-unit override.
Comments
Text following
#is excluded from numeric parsing. Full-line comments can also use the case-insensitiveCOMMENTkeyword:Full-line
#comments, inline#text, andCOMMENTvalues are retained indataset.metadata["comments"]while remaining excluded from numeric parsing. This preserves source notes for future HDF5 persistence without treating terminal prose as scientific workflow history.