System Calculator#

class thermoengine.magmaforge.system_calculator.SystemCalculator(elems: list[str], database: Database, min_potential: str | None = 'G', lagrange_l: list | None = None)#

Class for calculating system equilibrium.

Attributes:
active_phase_names

Returns a list of phase names

nonmelt_phase_names

Returns a list of non-melt phase names (excludes liquid)

nonsolid_phase_names

Returns a list of non-solid phase names (liquid, water, fluid)

nonvolatile_phase_names

Returns a list of nonvolatile phase names (excludes water, fluid)

phase_names

Returns a list of phase names

solid_phase_names

Returns a list of solid phase names (excludes liquid, water, fluid)

state

Returns the current state object for the system

Methods

equilibrate(T, P[, elem_comp, S_target, ...])

Equilibrates the system at a set of user-specified conditions

fractionate_phases(frac_remains[, method, ...])

Fractionates solid phases during crystallization or non-solid phases during melting.

get_liquid_model()

Returns the name of the liquid model

ModelNotImplemented

exception ModelNotImplemented#
property active_phase_names: list[str]#

Returns a list of phase names

equilibrate(T: float, P: float, elem_comp: _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes] | None = None, S_target: float | None = None, del_NNO: float | None = None, calc_args: dict | None = None) None#

Equilibrates the system at a set of user-specified conditions

Parameters:
  • T – temperature, in K

  • P – pressure, in bar

fractionate_phases(frac_remains: float, method: str = 'solids', impose_missing_elem_thresh=False)#

Fractionates solid phases during crystallization or non-solid phases during melting.

Parameters:

frac_remains – the fraction of solid phases remaining at each step

get_liquid_model() SolutionPhase#

Returns the name of the liquid model

property nonmelt_phase_names: list[str]#

Returns a list of non-melt phase names (excludes liquid)

property nonsolid_phase_names: list[str]#

Returns a list of non-solid phase names (liquid, water, fluid)

property nonvolatile_phase_names: list[str]#

Returns a list of nonvolatile phase names (excludes water, fluid)

property phase_names: list[str]#

Returns a list of phase names

property solid_phase_names: list[str]#

Returns a list of solid phase names (excludes liquid, water, fluid)

property state: StateData#

Returns the current state object for the system