System#

class thermoengine.magmaforge.system.StateHistory(Liq: SolutionPhase)#

Class for storing all states that a system has experienced during a calculation or series of calculations

Parameters:
LiqSolnPhase

A SolutionPhase object representing the liquid model.

Methods

get_all_phase_fractions()

Returns the phase fractions for all phases in each state in the system history, as a list of dictionaries.

get_all_phase_masses()

Returns the phase masses for all phases in each state in the system history, as a list of dictionaries.

get_bulk_comps([unit])

Returns the bulk composition for each state in the system history.

get_fractionated_comps([unit, method, norm])

Returns the composition of fractionated material for each state in the system history.

get_fractionated_masses([method])

Returns the aggregated mass of fractionated material for each state in the system history.

get_full_state_history_table([P_unit, ...])

Returns a formatted DataFrame with key properties.

get_liquid_chemical_potentials()

Returns the chemical potentials for each endmember in the liquid, for each state in the system history, as a list of Series.

get_logfO2s([buffer])

Returns an array of logfO2 values for each state in the system history.

get_melt_fractions([method])

Returns the melt fraction for each state in the system history.

get_phase_comp_table(phase_name[, index, unit])

Returns a formatted DataFrame with the composition of a given phase for each state in the system history.

get_phase_comps(phase_name[, unit])

Returns the composition of a given phase for each state in the system history.

get_phase_densities(phase_name)

Returns the density of a given phase for each state in the system history.

get_phase_entropies(phase_name)

Returns the entropy of a given phase for each state in the system history.

get_phase_frac_table([phases, index])

Returns a formatted DataFrame with the mass fraction of each phase, for each state in the system history

get_phase_mass_table([phases, index])

Returns a formatted DataFrame with the mass of each phase, for each state in the system history

get_phase_masses(phase_name)

Returns the mass of a given phase for each state in the system history.

get_phase_names([subset])

Returns a list of phase names in the system.

get_phase_volumes(phase_name)

Returns the volume of a given phase for each state in the system history.

get_pressures([unit])

Returns an array of pressures for each state in the system history.

get_temperatures([unit])

Returns an array of temperatures for each state in the system history.

get_total_entropies()

Returns an array of entropy values for each state in the system history, in J/K.

get_total_masses()

Returns the total mass for each state in the system history

save_full_state_history_table(filename[, ...])

Saves a formatted DataFrame with key properties to a csv file.

get_all_phase_fractions() list[dict]#

Returns the phase fractions for all phases in each state in the system history, as a list of dictionaries. For a formatted table, use .get_phase_frac_table().

get_all_phase_masses() list[dict]#

Returns the phase masses for all phases in each state in the system history, as a list of dictionaries. For a formatted table, use .get_phase_mass_table().

get_bulk_comps(unit: str = 'wt_oxides') DataFrame#

Returns the bulk composition for each state in the system history. Does not include fractionated material.

Parameters:
unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

Returns:
pd.DataFrame

A DataFrame of compositions

get_fractionated_comps(unit: str = 'wt_oxides', method: str = 'aggregated', norm: bool = False) DataFrame#

Returns the composition of fractionated material for each state in the system history.

Parameters:
unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

methodstr, optional

Whether to return incremental or aggregated compositions, by default ‘aggregated’

  • ‘aggregated’ returns the total mass of material removed via fractionation up to and including the present step.

  • ‘incremental’ returns the mass of material removed via fractionation in the current step.

normbool, optional

Whether to normalize compositions to 100%, by default False

Returns:
pd.DataFrame

A DataFrame of compositions.

Raises:
ValueError

Raised if method is not ‘incremental’ or ‘aggregated’.

get_fractionated_masses(method: str = 'aggregated') ndarray#

Returns the aggregated mass of fractionated material for each state in the system history.

Parameters:
methodstr, optional

Whether to return incremental or aggregated compositions, by default ‘aggregated’

  • ‘aggregated’ returns the total mass of material removed via fractionation up to and including the present step.

  • ‘instantaneous’ returns the mass of material removed via fractionation in the current step.

Returns:
np.ndarray

An array of masses

Raises:
ValueError

Raised if method is not ‘incremental’ or ‘aggregated’.

get_full_state_history_table(P_unit: str = 'bar', T_unit: str = 'K', fO2_buffer: str | None = None) DataFrame#

Returns a formatted DataFrame with key properties.

Parameters:
P_unitstr, optional

Pressure unit (‘bar’, ‘kbar’, or ‘GPa’), by default ‘bar’

T_unitstr, optional

Temperature unit (‘K’ or ‘C’), by default ‘K’

fO2_bufferstr | None, optional

The buffer to report logfO2 relative to, by default None

Returns:
pd.DataFrame

A DataFrame with mass, composition, and other key parameters.

get_liquid_chemical_potentials() list[Series]#

Returns the chemical potentials for each endmember in the liquid, for each state in the system history, as a list of Series.

get_logfO2s(buffer: str | None = None) ndarray#

Returns an array of logfO2 values for each state in the system history.

Parameters:
bufferstr | None, optional

A string representing the buffer to which to normalize logfO2 values. Options are None, ‘NNO’, ‘QFM’, etc…; by default None

Returns:
np.ndarray

An array of log10(fO2) values relative to the indicated buffer.

get_melt_fractions(method: str = 'instantaneous') ndarray#

Returns the melt fraction for each state in the system history. Excludes volatile phases.

Parameters:
methodstr, optional

Whether to return instantaneous or aggregated melt fractions, by default ‘instantaneous’

  • ‘instantaneous’ (default) returns mass_liquid/(mass_solid + mass_liquid) for the equilibrium system (ignores fractionated material).

  • ‘aggregated’ returns mass of fractionated liquid/initial mass (ignores the instantaneous liquid in equilibrium with the solid).

Returns:
np.ndarray

An array of melt fractions.

Raises:
ValueError

Raised if ‘aggregated’ method is called when liquids were not fractionated.

ValueError

Raised if method is not ‘instantaneous’ or ‘aggregated’

get_phase_comp_table(phase_name: str, index: str = 'T_K', unit: str = 'wt_oxides') DataFrame#

Returns a formatted DataFrame with the composition of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

indexstr, optional

The index for the DataFrame (i.e., row labels), by default ‘T_K’

  • Valid options are ‘T_K’, ‘T_C’, ‘P_bar’, ‘P_kbar’, or ‘P_GPa’

unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

Returns:
pd.DataFrame

A DataFrame of phase compositions

get_phase_comps(phase_name: str, unit: str = 'wt_oxides') DataFrame#

Returns the composition of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

Returns:
pd.DataFrame

A DataFrame of phase compositions, with no index. If you would like a temperature or pressure index, use .get_phase_comp_table()

Raises:
ValueError

Raised if phase name is not valid.

get_phase_densities(phase_name: str) Series#

Returns the density of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

Returns:
pd.Series

A Series of phase densities for an individual phase.

Raises:
ValueError

Raised if phase name is not valid.

get_phase_entropies(phase_name: str) Series#

Returns the entropy of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

Returns:
pd.Series

A Series of phase entropies for an individual phase.

Raises:
ValueError

Raised if phase name is not valid.

get_phase_frac_table(phases: str | list[str] = 'all', index: str = 'T_K') DataFrame#

Returns a formatted DataFrame with the mass fraction of each phase, for each state in the system history

Parameters:
phasesstr | list[str], optional

The phases to include in the table, by default ‘all’

  • ‘all’ returns all phases present or possible in the database

  • ‘present’ returns only the phases present at some point during the calculation

  • A list of phase strings may also be provided, e.g. [‘Olivine’, ‘Liquid’]

indexstr, optional

The index for the DataFrame (i.e., row labels), by default ‘T_K’

  • Valid options are ‘T_K’, ‘T_C’, ‘P_bar’, ‘P_kbar’, or ‘P_GPa’

Returns:
pd.DataFrame

A DataFrame of phase mass fractions

Raises:
KeyError

Raised if a phase is not in the list of phases.

ValueError

Raised if phases is not set to ‘all’, ‘present’, or a list of phase names

get_phase_mass_table(phases: str | list[str] = 'all', index: str = 'T_K') DataFrame#

Returns a formatted DataFrame with the mass of each phase, for each state in the system history

Parameters:
phasesstr | list[str], optional

The phases to include in the table, by default ‘all’

  • ‘all’ returns all phases present or possible in the database

  • ‘present’ returns only the phases present at some point during the calculation

  • A list of phase strings may also be provided, e.g. [‘Olivine’, ‘Liquid’]

indexstr, optional

The index for the DataFrame (i.e., row labels), by default ‘T_K’

  • Valid options are ‘T_K’, ‘T_C’, ‘P_bar’, ‘P_kbar’, or ‘P_GPa’

Returns:
pd.DataFrame

A DataFrame of phase masses

Raises:
KeyError

Raised if a phase is not in the list of phases.

ValueError

Raised if phases is not set to ‘all’, ‘present’, or a list of phase names

get_phase_masses(phase_name: str) Series#

Returns the mass of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

Returns:
pd.Series

A Series of phase masses for an individual phase.

Raises:
ValueError

Raised if phase name is not valid.

get_phase_names(subset: str = 'all') list[str]#

Returns a list of phase names in the system.

Parameters:
subsetstr, optional

‘all’ or ‘present, by default ‘all’

  • ‘all’ returns all present phases as well as database phases that could have formed.

  • ‘present’ returns only phases that are present (nonzero) at some point during the calculation.

Returns:
list[str]

A list of phase strings

get_phase_volumes(phase_name: str) Series#

Returns the volume of a given phase for each state in the system history.

Parameters:
phase_namestr

The full phase name, e.g. ‘Olivine’ or ‘Liquid’

Returns:
pd.Series

A Series of phase volumes for an individual phase.

Raises:
ValueError

Raised if phase name is not valid.

get_pressures(unit: str = 'bar') ndarray#

Returns an array of pressures for each state in the system history.

Parameters:
unitstr, optional

The pressure unit, by default ‘bar’

Returns:
np.ndarray

An array of pressure values

Raises:
ValueError

Raised if pressure unit is not ‘bar’, ‘kbar’, or ‘GPa’

get_temperatures(unit: str = 'K') ndarray#

Returns an array of temperatures for each state in the system history.

Parameters:
unitstr, optional

The temperature unit, by default ‘K’

Returns:
np.ndarray

An array of temperature values

Raises:
ValueError

Raised if temperature unit is not ‘K’ or ‘C’

get_total_entropies() ndarray#

Returns an array of entropy values for each state in the system history, in J/K.

get_total_masses() ndarray#

Returns the total mass for each state in the system history

save_full_state_history_table(filename: str, P_unit: str = 'bar', T_unit: str = 'K', fO2_buffer: str | None = None)#

Saves a formatted DataFrame with key properties to a csv file.

Parameters:
filenamestr

The filename to use when saving the file

P_unitstr, optional

Pressure unit (‘bar’, ‘kbar’, or ‘GPa’), by default ‘bar’

T_unitstr, optional

Temperature unit (‘K’ or ‘C’), by default ‘K’

fO2_bufferstr | None, optional

The buffer to report logfO2 relative to, by default None

class thermoengine.magmaforge.system.System(comp: dict[str, float] | Series, T_C: float | None = None, T_K: float | None = None, T_liquidus: bool | None = None, P_GPa: float | None = None, P_kbar: float | None = None, P_bar: float | None = None, logfO2: tuple[str, float] | None = None, Fe3_tFe: float | None = None, bulk_Fe2O3: float | None = None, database: Database | str = 'MELTS_v1_0', equil_metric_level: int = 0, chemical_potential_constraints: list | None = None, calc_args={})#

Class for creating and storing an equilibrated chemical system.

Parameters:
compdict[str,float] | pd.Series

Initial composition, which must be given as a dictionary or Pandas Series of oxide masses– e.g. {‘SiO2’: 45.0, …}. Oxide masses do not need to sum to 100.

T_Cfloat | None, optional

The temperature at which to equilibrate the system, in Celsius. By default None. (At most one temperature input option may be set)

T_Kfloat | None, optional

The temperature at which to equilibrate the system, in Kelvin. By default None. (At most one temperature input option may be set)

T_liquidusbool | None, optional

If T_liquidus is set to True, or if no temperature input is given, the system will equilibrate just above the liquidus (to the nearest 1 K). By default None. (At most one temperature input option may be set)

P_GPafloat | None, optional

The pressure at which to equilibrate the system, in Gigapascals. By default None. (Exactly one pressure input option may be set)

P_kbarfloat | None, optional

The pressure at which to equilibrate the system, in kilobars. By default None. (Exactly one pressure input option may be set)

P_barfloat | None, optional

The pressure at which to equilibrate the system, in bars. By default None. (Exactly one pressure input option may be set)

logfO2tuple[str,float] | None, optional

The logfO2 at which to equilibrate the system, by default None. The first tuple element is a string representing the reference buffer (e.g., ‘NNO’). The second tuple element is a float representing the offset relative to the buffer. (At most one redox option may be set)

Fe3_tFefloat | None, optional

The molar Fe3+/(Fe3+ + Fe2+) ratio at which to equilibrate the system. If set, the system will redistribute Fe between FeO and Fe2O3 to reach the desired ratio. By default None. (At most one redox option may be set)

bulk_Fe2O3float | None, optional

The bulk system Fe2O3 (in wt%) at which to equilibrate the system. If set, the system will redistribute Fe between FeO and Fe2O3 to reach the desired bulk Fe2O3 (per 100 wt% oxides). If the initial composition already contains Fe2O3, this Fe2O3 content will be re-assigned as FeO and then redistributed to the bulk Fe2O3 value provided. By default None. (At most one redox option may be set)

databasethermo.model.Database | str, optional

The thermodynamic database to use, by default ‘MELTS_v1_0’. Databases may be provided as either a string or a Database object.

equil_metric_levelint, optional

Level of equilibrium check, by default 0. (Other values not yet implemented)

calc_argsdict, optional

A dictionary of other calculation arguments, by default {}.

Attributes:
P_GPa

Returns the pressure of the current state in Gigapascal

P_bar

Returns the pressure of the current state in bars

P_kbar

Returns the pressure of the current state in kilobars

S_JK

Returns the total entropy of the current state, in J/K

T_C

Returns the temperature of the current state in degrees Celsius

T_K

Returns the temperature of the current state in Kelvin

default_calc_args

Returns the default calculation arguments

history

Returns a StateHistory object that stores the history of all states experienced by the system

initial_mass

Returns the initial mass of the system

input_arguments

Returns a dictionary of all input arguments to System, to increase reusability/reproducibility.

mass_fraction

Returns the mass fraction, relative to initial system mass, of the current state

mass_of_nonvolatiles

Returns the mass of all nonvolatile phases in the current state

melt_fraction

Returns the instantaneous melt fraction of the current state;

nonvolatile_phase_names

Returns non-volatile phase names

phase_fractions

Returns the phase fractions for the current state

phase_masses

Returns the phase masses for the current state

phase_names

Returns all phase names

solid_phase_names

Returns solid mineral phase names

state

Returns the current state object, which stores composition and properties such as temperature and pressure for the current system state.

total_entropy

Returns the total entropy of the current state

total_mass

Returns the total mass of the current state

Methods

InvalidInputError(message)

Exception raised if input value is not valid.

O2BufferNotDefined(message)

Exception raised if fix_fO2 is set during melting/crystallization, but an fO2 buffer was not defined on initialization of the system.

comp([unit])

Returns the composition of the current state

crystallize([method, fix_fO2, T_step, ...])

Crystallizes the system by decreasing temperature at constant pressure.

crystallize_by_entropy_reduction([S_step, ...])

Prototype method for crystallizing by extracting heat, rather than by fixing the temperature.

evolve_system_by_a_single_step([dT, dP, dS, ...])

Evolves the system by a single step in P-T-S space.

fractionated_comp([unit, method, norm])

Returns the composition of fractionated material removed from the System.

fractionated_mass([method])

Returns the mass of fractionated material removed from the System.

initial_comp([unit])

Returns the initial composition of the system

logfO2([buffer])

Returns the logfO2 of the current state.

melt_by_decompression([method, fix_fO2, ...])

Melts the system by decreasing pressure at constant entropy.

exception InvalidInputError(message)#

Exception raised if input value is not valid.

Attributes:

message – explanation of the error

exception O2BufferNotDefined(message)#

Exception raised if fix_fO2 is set during melting/crystallization, but an fO2 buffer was not defined on initialization of the system.

Attributes:

message – explanation of the error

property P_GPa#

Returns the pressure of the current state in Gigapascal

property P_bar#

Returns the pressure of the current state in bars

property P_kbar#

Returns the pressure of the current state in kilobars

property S_JK#

Returns the total entropy of the current state, in J/K

property T_C#

Returns the temperature of the current state in degrees Celsius

property T_K#

Returns the temperature of the current state in Kelvin

comp(unit='wt_oxides')#

Returns the composition of the current state

crystallize(method: str = 'equil', fix_fO2: bool = False, T_step: float = 10, melt_frac_cutoff: float = 0.01, T_final_K: float | None = None, T_final_C: float | None = None, frac_remains: float = 0.01, calc_args: dict = {}, profile_run: bool = False) System#

Crystallizes the system by decreasing temperature at constant pressure.

Parameters:
methodstr, optional

The crystallization method. Either ‘frac’ (fractional crystallization) or ‘equil’ (equilibrium/batch crystallization). By default ‘equil’.

fix_fO2bool, optional

Whether to run buffered or unbuffered. ‘True’ to run buffered at current fO2 (currently relative to NNO– more options coming soon), ‘False’ to run unbuffered, by default False.

T_stepfloat, optional

The temperature interval to adjust T at each step. Both positive and negative values will move system to lower temperature. By default 10.

melt_frac_cutofffloat, optional

The melt fraction cutoff for declaring crystallization complete, by default 0.01 (1% melt remaining).

T_final_Kfloat | None, optional

The final temperature for the system (in K), if full crystallization is not reached first. By default None.

T_final_Cfloat | None, optional

The final temperature for the system (in C), if full crystallization is not reached first. By default None.

frac_remainsfloat, optional

The amount of melt remaining at each step during fractional melting, by default 1e-2.

calc_argsdict, optional

A dictionary of additional calculation arguments, by default {}.

profile_runbool, optional

If True, checks run performance, by default False.

Returns:
selfSystem

Returns the updated System instance (updated with SystemState objects for each temperature state during crystallization).

crystallize_by_entropy_reduction(S_step: float = 5.0, T_final_K: float | None = None, T_final_C: float | None = None, melt_frac_cutoff: float = 0.01, calc_args: dict = {})#

Prototype method for crystallizing by extracting heat, rather than by fixing the temperature.

Parameters:
S_stepfloat, default: 5.0

The entropy reduction in each step, in J. Positive or negative values will be treated identically.

T_final_Kfloat | None, optional

The final temperature for the system (in K), if full crystallization is not reached first. By default None.

T_final_Cfloat | None, optional

The final temperature for the system (in C), if full crystallization is not reached first. By default None.

melt_frac_cutofffloat, default: 0.01

The melt fraction at which to stop the calculation

calc_argsdict, optional

A dictionary of additional calculation arguments, by default {}.

property default_calc_args: dict#

Returns the default calculation arguments

evolve_system_by_a_single_step(dT: float | None = None, dP: float = 0, dS: float | None = None, fix_fO2=False, store_state=True, calc_args: dict | None = {}) bool#

Evolves the system by a single step in P-T-S space. fO2 may be fixed at current system fO2 or allowed to vary.

Parameters:
dTfloat, optional

Change in temperature (in K), by default 0.

dPfloat, optional

Change in pressure (in bar), by default 0.

dSfloat, optional

Change in entropy (in J/K), by default 0.

fix_fO2bool, optional

Whether to fix fO2 at the current value (relative to NNO) or remain unbuffered, by default False.

calc_argsOptional[dict], optional

A dictionary of additional calculation arguments, by default None

Returns:
bool

Returns True if successful, and updates the System.

Raises:
ValueError

Error is raised if both dS and dT are given as inputs.

fractionated_comp(unit: str = 'wt_oxides', method: str = 'incremental', norm: bool = False) Series#

Returns the composition of fractionated material removed from the System.

Parameters:
unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

methodstr, optional

Whether to return incremental or aggregated compositions, by default ‘aggregated’

  • ‘aggregated’ returns the total mass of material removed via fractionation up to and including the present step.

  • ‘incremental’ returns the mass of material removed via fractionation in the current step.

normbool, optional

Whether to normalize compositions to 100%, by default False

Returns:
pd.Series

A Series representing the fractionated composition.

Raises:
ValueError

Raised if method is not ‘incremental’ or ‘aggregated’.

fractionated_mass(method: str = 'incremental') float#

Returns the mass of fractionated material removed from the System.

Parameters:
methodstr, optional

Whether to return incremental or aggregated compositions, by default ‘aggregated’

  • ‘aggregated’ returns the total mass of material removed via fractionation up to and including the present step.

  • ‘incremental’ returns the mass of material removed via fractionation in the current step.

Returns:
float

The mass of fractionated material.

Raises:
ValueError

Raised if method is not ‘incremental’ or ‘aggregated’.

property history: StateHistory#

Returns a StateHistory object that stores the history of all states experienced by the system

initial_comp(unit: str = 'wt_oxides') Series#

Returns the initial composition of the system

Parameters:
unitstr, optional

The unit for reporting composition, by default ‘wt_oxides’

  • Options are ‘wt_oxides’, ‘mol_oxides’, ‘wt_elems’, ‘mol_elems’

Returns:
pd.Series

A Series representing the initial composition.

property initial_mass: float#

Returns the initial mass of the system

property input_arguments: dict#

Returns a dictionary of all input arguments to System, to increase reusability/reproducibility.

logfO2(buffer: str | None = None) float#

Returns the logfO2 of the current state.

Parameters:
bufferstr | None, optional

The buffer to report logfO2 relative to (e.g., ‘QFM’), by default None

Returns:
float

logfO2 (base 10) of the current state

property mass_fraction#

Returns the mass fraction, relative to initial system mass, of the current state

property mass_of_nonvolatiles#

Returns the mass of all nonvolatile phases in the current state

melt_by_decompression(method: str = 'equil', fix_fO2: bool = False, P_final_GPa: float = 0.5, P_step_GPa: float = 0.1, frac_remains: float = 0.005, calc_args: dict = {}, profile_run: bool = False) System#

Melts the system by decreasing pressure at constant entropy.

Parameters:
methodstr, optional

The melting method. Either ‘frac’ (fractional melting) or ‘equil’ (equilibrium/batch melting). By default ‘equil’.

fix_fO2bool, optional

Whether to run buffered or unbuffered. ‘True’ to run buffered at current fO2 (currently relative to NNO– more options coming soon), ‘False’ to run unbuffered, by default False.

P_GPa_stepfloat, optional

The pressure interval to adjust P at each step, in GPa. Both positive and negative values will move system to lower pressure. By default 0.1.

P_GPa_finalfloat | None, optional

The final pressure for the system (in GPa). By default 0.5.

frac_remainsfloat, optional

The amount of melt remaining at each step during fractional melting, by default 1e-2.

calc_argsdict, optional

A dictionary of additional calculation arguments, by default {}.

profile_runbool, optional

If True, checks run performance, by default False.

Returns:
selfSystem

Returns the updated System instance (updated with SystemState objects for each pressure state during decompression).

property melt_fraction: float#

Returns the instantaneous melt fraction of the current state; i.e., mass_of_liquid/mass_of_non_volatiles

property nonvolatile_phase_names#

Returns non-volatile phase names

property phase_fractions#

Returns the phase fractions for the current state

property phase_masses#

Returns the phase masses for the current state

property phase_names#

Returns all phase names

property solid_phase_names#

Returns solid mineral phase names

property state: StateData#

Returns the current state object, which stores composition and properties such as temperature and pressure for the current system state.

property total_entropy#

Returns the total entropy of the current state

property total_mass#

Returns the total mass of the current state