Composite Class¶
- class burnman.Composite(phases, fractions=None, fraction_type='molar', name='Unnamed composite')[source]
Bases:
MaterialThe composite class in BurnMan is designed to calculate the properties of multi-phase assemblages. Each phase within the composite is represented by an instance of the Material class (typically a Mineral or Solution). The composite class calculates the bulk properties of the assemblage based on the properties and proportions of the individual phases.
All of the thermodynamic properties (Gibbs free energy, enthalpy, entropy, volume, heat capacity etc.) are calculated by assuming that any changes in pressure or temperature of the composite as a whole are reflected equally in all of the individual phases, but that no reactions occur either within or between phases. For a composite that calculates properties assuming some or all reactions between phases, can take place ion the timescales of changes in pressure and temperature, see Relaxed Composite Class.
The elastic properties (bulk and shear moduli, seismic velocities etc.) of a composite material on short timescales are often not well-approximated by assuming homogeneous changes in pressure and temperature. This is because differential stresses can develop between phases due to their differing elastic and thermal properties. To account for this, the composite class allows the user to specify an averaging scheme for the elastic moduli of the composite. The default averaging scheme is Voigt-Reuss-Hill, which is appropriate for many applications. Other Averaging Schemes are available.
Example:
from burnman import Composite from burnman.minerals import SLB2011 # Create a composite made of 70% olivine and 30% orthopyroxene phases = [SLB2011.mg_fe_olivine(), SLB2011.orthopyroxene()] fractions = [0.7, 0.3] # molar fractions composite = Composite(phases, fractions, fraction_type='molar', name='Mantle composite') # Set the compositions of the solution phases # Endmembers of olivine are forsterite and fayalite # Endmembers of orthopyroxene are enstatite, ferrosilite, Mg-tschermaks and Orthodiopside composite.phases[0].set_composition([0.9, 0.1]) # Fo90 composite.phases[1].set_composition([0.8, 0.2, 0.0, 0.0]) # En80 # Set the state of the composite (1 GPa, 1500 K) composite.set_state(1e9, 1500) # Change the fractions of the phases composite.set_fractions([0.6, 0.4]) # Change the averaging scheme to Hashin-Shtrikman lower bound composite.set_averaging_scheme("HashinShtrikmanLower")
- Parameters:
phases (list of
burnman.Material) – List of phases.fractions (list of floats) – molar or mass fraction for each phase.
fraction_type (str) – ‘molar’ or ‘mass’ (optional, ‘molar’ as standard) specify whether molar or mass fractions are specified.
name (str) – Name of the composite (optional).