Skip to the content.

The py_KineticGas class, found in pykingas/py_KineticGas.py, is the core of the KineticGas Python interface. All Revised Enskog Theory models inherit from py_KineticGas. This is the class that contains the interface to all practical calculations that can be done from the python-side of KineticGas. Derived classes only implement specific functions for parameter handling etc.

Table of contents

The constructor

The constructor

Table of contents

__init__(self, comps, mole_weights=None, N=3, is_idealgas=False)

Args:

     comps (str):

          Comma-separated list of components, following ThermoPack-convention

     mole_weights (1d array) :

          Mole weights [g/mol]. Will be used instead of database values if provided

     is_idealgas (bool) :

          If true, radial distribution function is unity, if false use radial distribution function of modelIn addition, several density-dependent factors are set to zero, to ensure consistency with the ideal gas law / Gibbs-Duhem for an ideal gas.

TV-property interfaces

Computing properties as a function of temperature and volume.

Table of contents

bulk_viscosity(self, T, Vm, x, N=None)

Not implemented

Raises: NotImplementedError

conductivity_matrix(self, T, Vm, x, N=2, formulation='T-psi', frame_of_reference='CoM', use_thermal_conductivity=None)

Compute the conductivity matrix $L$, for use in NET calculations. The Flux/Force formulation used in the NET model is selected using the formulation kwarg. Currently implemented formulations are: ———————————————————————————————-

'T-psi':


\[J_q = L_{qq} \nabla (1 / T) - \sum_{i=1}^{N_c-1}(1 / T) L_{qi} \nabla_T \Psi_i\] \[J_i = L_{iq} \nabla (1 / T) - \sum_{j=1}^{N_c-1}(1 / T) L_{ij} \nabla_T \Psi_j\]

Where

\[\Psi_i = \mu_i - \mu_{N_c}\]

and $N_c$ denotes the number of components. The last component is used as the dependent component. The fluxes in this formulation are on a mass basis, and the formulation is implemented in the centre of mass frame of reference. The formulation is only implemented for ideal gases. ———————————————————————————————-

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (1darray) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order (must be >= 2 for thermal effects)

     formulation (str, optional) :

          The NET formulation for which to compute the conductivity matrix.

     frame_of_reference (str, optional) :

          The frame of reference (‘CoM’, ‘CoN’, ‘CoV’, or ‘solvent’). Default: ‘CoM’.

     use_thermal_conductivity (callable, optional) :

          External thermal conductivity model. Assumed to have the signatureuse_thermal_conductivity(T, Vm, x), returning the thermal conductivity in [W / m K]. Defaults to None. If no model is supplied, KineticGas is used to compute thermal conductivity.

Returns:

     ndarray :

          The conductivity matrix, contents will vary depending on the formulation kwarg.

interdiffusion(self, T, Vm, x, N=None, use_independent=True, dependent_idx=None, frame_of_reference='CoN', use_binary=True, solvent_idx=None)

Compute the interdiffusion coefficients [m^2 / s]. Default definition is

\[J_i^{(n, n)} = - \sum_{j \neq l} D_{ij} \nabla n_j, \nabla T = \nabla p = F_k = 0 \forall k\]

where the flux, $J_i^{(n, n)}$ is on a molar basis, in the molar frame of reference, and $j \neq l$ is an independent set of forces with $l=$ dependent_idx. For fluxes in other frames of reference, use the frame_of_reference kwarg. For the diffusion coefficients describing the fluxes’ response to all forces (not independent) the definition is:

\[J_i^{(n, n)} = - \sum_j D_{ij} \nabla n_j, \nabla T = \nabla p = F_k = 0 \forall k\]

use the use_independent and dependent_idx kwargs to switch between these definitions. See: Eq. (17-20) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature (K)

     Vm (float) :

          Molar volume (m3 / mol)

     x (array_like) :

          composition (mole fractions)

     N (int, optional) :

          Enskog approximation order. Default set on model initialisation.

     use_binary (bool, optional) :

          If the mixture is binary, and an independent set of fluxes and forces is considered, i.e.use_independent=True, the diffusion coefficients will be exactly equal with opposite sign. Setting use_binary=True will in that case only return the coefficient describing the independent flux-force relation.

     use_independent (bool, optional) :

          Return diffusion coefficients for independent set of forces.

     dependent_idx (int, optional) :

          Index of the dependent molar density gradient (only if use_independent=True, the default behaviour).Defaults to last component, except when frame_of_reference='solvent', in which case default is equal to solvent_idx.

     frame_of_reference (str, optional) :

          Which frame of reference the diffusion coefficients apply to. Defaultis ‘CoN’. Can be ‘CoN’ (molar FoR), ‘CoM’ (barycentric FoR) or ‘solvent’ (solvent FoR). See the ‘solvent_idx’ kwarg for information on selecting the solvent index. See get_com_2_for for more information.

     solvent_idx (int, optional) :

          Index of component identified as solvent (only when using frame_of_reference='solvent')

Returns:

     (ndarray or float) :

          Diffusion coefficients, shape varies based on options and number of components. Unit [m^2 / s]

interdiffusion_general(self, T, Vm, x, N=None)

Compute the ‘Kinetic CoM diffusion coefficients’, defined by $J_i^{(n, m)} = - \sum_j D_{ij} abla n_j,$ $ abla T = abla p = F_k = 0$ orall $k$ For end-users, see: interdiffusion See: Eq. (19) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature (K)

     Vm (float) :

          Molar volume (m3 / mol)

     x (array_like) :

          composition (mole fractions)

     N (int, optional) :

          Enskog approximation order

Returns:

     (2D array) :

          Array of the (not independent) $D^{(K, m)}$ diffusion coefficients. Unit [m^2 / s]

resistivity_matrix(self, T, Vm, x, N=2, formulation='T-psi', frame_of_reference='CoM', use_thermal_conductivity=None)

Compute the resistivity matrix $R = L^{-1}$, for use in NET calculations. The Flux/Force formulation used in the NET model is selected using the formulation kwarg. Currently implemented formulations are: ———————————————————————————————-

'T-psi':


\[J_q = L_{qq} \nabla (1 / T) - \sum_{i=1}^{N_c-1}(1 / T) L_{qi} \nabla_T \Psi_i\] \[J_i = L_{iq} \nabla (1 / T) - \sum_{j=1}^{N_c-1}(1 / T) L_{ij} \nabla_T \Psi_j\]

Where

\[\Psi_i = \mu_i - \mu_{N_c}\]

and $N_c$ denotes the number of components. The last component is used as the dependent component. The fluxes in this formulation are on a mass basis, and the formulation is implemented in the centre of mass frame of reference. The formulation is only implemented for ideal gases. ———————————————————————————————-

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (1darray) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order (must be >= 2 for thermal effects)

     formulation (str, optional) :

          The NET formulation for which to compute the conductivity matrix.

     frame_of_reference (str, optional) :

          The frame of reference (‘CoM’, ‘CoN’, ‘CoV’, or ‘solvent’). Default: ‘CoM’.

     use_thermal_conductivity (callable, optional) :

          External thermal conductivity model. Assumed to have the signaturethermal_conductivity(T, Vm, x), returning the thermal conductivity in [W / m K]. Defaults to None. If no model is supplied, KineticGas is used to compute the thermal conductivity.

Returns:

     ndarray :

          The resistivity matrix, contents will vary depending on the formulation kwarg.

soret_coefficient(self, T, Vm, x, N=None)

Compute the Soret coefficients, $S_{T, ij}$ defined as $S_{T, ij} = \alpha_{ij} / T$

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition

     N (int, optional) :

          Enskog approximation order (>= 2)

thermal_conductivity(self, T, Vm, x, N=None)

Compute the thermal conductivity, $\lambda$. For models initialized with is_idealgas=True, the thermal conductivity is not a function of density (i.e. $d \lambda / d V_m = 0$). See Eq. (13) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order (>= 2)

Returns:

     (float) :

          The thermal conductivity of the mixture.

thermal_diffusion_coeff(self, T, Vm, x, N=None, use_independent=False, dependent_idx=None, frame_of_reference='CoN', solvent_idx=None)

Compute thermal diffusion coefficients, $D_{T,i}$ [mol / m^2 s] Default definition is

\[J_i^{(n, n)} = D_{T,i} \nabla \ln T - \sum_j D_{ij} \nabla n_j, \nabla p = F_k = 0 \forall k\]

where the flux, $J_i^{(n, n)}$ is on a molar basis, in the molar frame of reference. For fluxes in other frames of reference, use the ‘frame_of_reference’ kwarg. For the diffusion coefficients corresponding to an independent set of forces, defined by

\[J_i^{(n, n)} = D_{T,i} \nabla \ln T - \sum_{j \neq l} D_{ij} \nabla n_j, \nabla p = F_k = 0 \forall k\]

where $l$ is the index of the dependent molar density gradient, use the ‘use_independent’ and ‘dependent_idx’ kwargs. See: Eq. (23) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m^3 / mol]

     x (array_like) :

          Mole fractions [-]

     N (int, optional) :

          Enskog approximation order (>=2). Defaults to 2.

     use_independent (bool, optional) :

          Return diffusion coefficients for independent set of forces.

     dependent_idx (int, optional) :

          Index of the dependent molar density gradient (only if use_dependent=True).Defaults to last component.

     frame_of_reference (str, optional) :

          What frame of reference the molar fluxes are measured in. Seeget_com_2_for for valid options.

     solvent_idx (int, optional) :

          Index of component identified as solvent (only when using frame_of_reference='solvent')

Returns:

     (1D array) :

          Thermal diffusion coefficients. Unit [mol m^2 / s]

thermal_diffusion_factor(self, T, Vm, x, N=None)

Compute the thermal diffusion factors $\alpha_{ij}$, defined by

\[\alpha_{ij} = k_{T, i} - k_{T, j}\]

where $k_{T,i}$ are the thermal diffusion ratios. This definition implies that

\[\nabla \ln (n_i / n_j) = - \alpha_{ij} \nabla \ln T\]

when the mass fluxes vanish. The thermal diffusion factors are independent of the frame of reference. See: Eq. (29) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order (>= 2)

Returns:

     (2D array) :

          The thermal diffusion factors of the mixture. Dimensionless.

thermal_diffusion_ratio(self, T, Vm, x, N=None)

Calculate the “independent” thermal diffusion ratios, $k_{T, i}$ defined by

\[J_i^{(n, n)} = - \sum_{j \neq l} D_{ij}^{(I, n)} ( \nabla n_j + n_j k_{T, j} D_{T, j}^{(I, n)} \nabla \ln T )\]

and

\[\sum_i x_i \sum_j [\delta_{ij} + (4 \pi / 3) \sigma_{ij}^3 n_j M_{ij} \chi_{ij} - (n_j k_{T,j} / k_B T) ( d \mu_i / n_j )_{T,n_{l \neq j}}] = 0\]

This definition implies that

\[\nabla n_j = -n_j k_{T,j} \nabla \ln T\ \forall j\]

when all mass fluxes vanish. For models initialised with is_idealgas=True, the second equation is replaced with

\[\sum_i x_i k_{T,i} = 1\]

The thermal diffusion ratios are independent of the frame of reference. See: Eq. (26-27) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order (>= 2)

Returns:

     (1D array) :

          The thermal diffusion ratio of each component. Unit Dimensionless.

viscosity(self, T, Vm, x, N=None)

Compute the shear viscosity, $\eta$. For models initialized with is_idealgas=True, the shear viscosity is not a function of density (i.e. $d \eta / d V_m = 0). See Eq. (12) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

     N (int, optional) :

          Enskog approximation order

Returns:

     (float) :

          The shear viscosity of the mixture.

Tp-property interfaces

Computing properties as a function of temperature and pressure. Simply forwards calls to the appropriate TV-property methods after computing molar volume using the internal equation of state object.

Table of contents

interdiffusion_tp(self, T, p, x, N=None, use_independent=True, dependent_idx=None, frame_of_reference='CoN', use_binary=True, solvent_idx=None)

Compute molar volume using the internal equation of state (self.eos), assuming vapour, and pass the call to self.interdiffusion. See self.interdiffusion for documentation.

thermal_coductivity_tp(self, T, p, x, N=None)

Compute molar volume using the internal equation of state (self.eos), assuming vapour, and pass the call to self.thermal_conductivity. See self.thermal_conductivity for documentation.

thermal_diffusion_coeff_tp(self, T, p, x, N=None, use_independent=False, dependent_idx=None, frame_of_reference='CoN', solvent_idx=None)

Compute molar volume using the internal equation of state (self.eos), assuming vapour, and pass the call to self.thermal_diffusion_coeff. See self.thermal_diffusion_coeff for documentation.

thermal_diffusion_factor_tp(self, T, p, x, N=None)

Compute molar volume using the internal equation of state (self.eos), assuming vapour, and pass the call to self.thermal_diffusion_factor. See self.thermal_diffusion_factor for documentation.

viscosity_tp(self, T, p, x, N=None)

Compute molar volume using the internal equation of state (self.eos), assuming vapour, and pass the call to self.viscosity. See self.viscosity for documentation.

Frame of Reference transformations

Generate matrices for Frame of Reference transformations. See the supportingmaterial of Revised Enskog Theory for Mie fluids for details.

Table of contents

get_com_2_con_matr(self, x)

Get transformation matrix from centre of mass (CoM) to centre of moles (CoN).

Args:

     x (array_like) :

          Molar composition [-]

Returns:

     (2d array) :

          Transformation matrix $\Psi^{n \leftmapsto m}$

get_com_2_cov_matr(self, T, Vm, x)

Get centre of mass (CoM) to centre of volume (CoV) transformation matrix

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

Returns:

     2d array :

          The transformation matrix $\Psi^{V \leftmapsto m}$.

get_com_2_for_matr(self, T, Vm, x, FoR, **kwargs)

Dispatcher to get a specific ‘change of frame of reference’ matrix for transformation from centre of mass to ‘FoR’. Returns the appropriate matrix for the transformations derived in Appendix A of … to transform a flux from the centre of mass frame of reference to the ‘FoR’ frame of reference by the transformation

\[J^{(n, FoR)} = \psi @ J^{(n, m)}\]

where $\psi$ is the matrix returned by this method, and $J$ is the vector of (all) molar fluxes, with the subscript indicating the frame of reference.

Args:

     T (float) :

          Temperature [K]

     Vm (float) :

          Molar volume [m3 / mol]

     x (array_like) :

          Molar composition [-]

Returns:

     (2Darray) :

          The $N$ x $N$ transformation matrix to transform the fluxes, with $N$ being the number ofcomponents.

get_com_2_solv_matr(self, x, solvent_idx)

Get transformation matrix from centre of mass (CoM) to solvent (solvent) frame of reference

Args:

     x (array_like) :

          Molar composition [-]

     solvent_idx (int) :

          The component index of the solvent.

Returns:

     2darray :

          The transformation matrix $\Psi^{n_k \leftmapsto m}$, where $k$ is the solvent_idx.

get_solv_2_solv_matr(self, x, prev_solv_idx, new_solv_idx)

Get solvent-to-solvent frame of reference transformation matrix

Args:

     x (array_like) :

          Molar composition [-]

     prev_solv_idx (int) :

          Component index of the old (current) solvent

     new_solv_idx (int) :

          Component index of the new solvent

Returns:

     2d array :

          The transformation matrix $\Psi^{n_k \leftmapsto n_l}$, where $k$ is new_solv_idx and $l$ is prev_solv_idx.

Interfaces to C++ methods

Lightweight wrappers for the most commonly used C++ side methods.

Table of contents

get_conductivity_matrix(self, particle_density, T, mole_fracs, N=None)

Compute the elements of the matrix corresponding to the set of equations that must be solved for the thermal response function sonine polynomial expansion coefficients: Eq. (6) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     mole_fracs (list[float]) :

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     2Darray :

          ($N N_c$ x $N N_c$) matrix, where $N$ is the Enskog approximation order and $N_c$ isthe number of components.

get_conductivity_vector(self, particle_density, T, mole_fracs, N)

Compute the right-hand side vector to the set of equations that must be solved for the thermal response function Sonine polynomial expansion coefficients: Eq. (6) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     **mole_fracs (list) :**

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     (1Darray) :

          ($N N_c$,) vector, where $N$ is the Enskog approximation order and $N_c$ isthe number of components.

get_contact_diameters(self, particle_density, T, x)

Compute collision diameters given by Eq. (40) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     x (list[float]) :

          Molar composition [-]

Returns:

     2d array :

          Collision diameters [m], indexed by component pair.

get_diffusion_vector(self, particle_density, T, mole_fracs, N=None)

Compute the right-hand side vector to the set of equations that must be solved for the diffusive response function Sonine polynomial expansion coefficients. Eq. (10) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     mole_fracs (list[float]) :

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     (1Darray) :

          ($N N_c^2$,) vector, where $N$ is the Enskog approximation order and $N_c$ isthe number of components.

get_rdf(self, particle_density, T, x)

Compute the radial distribution function at contact

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     x (list[float]) :

          Molar composition [-]

Returns:

     2d array :

          RDF at contact, indexed by component pair.

Utility methods

Methods for various helper computations

Table of contents

check_valid_composition(self, x)

Check that enough mole fractions are supplied for the initialised model. Also check that they sum to unity.

Args:

     x (array_like) :

          Molar composition Raises

     IndexError :

          If wrong number of mole fractions is supplied.

     RuntimeWarning :

          If mole fractions do not sum to unity.

compute_cond_vector(self, particle_density, T, mole_fracs, N=None)

Compute the thermal response function Sonine polynomial expansion coefficients by solving the set of equations

\[\Lambda \ell = \lambda\]

Corresponding to Eq. (6) in RET for Mie fluids (https://doi.org/10.1063/5.0149865) Where $\Lambda$ is the matrix returned by the c++ method get_conductivity_matrix, and $\lambda$ is the vector returned by the c++ method get_conductivity_vector.

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     mole_fracs (list[float]) :

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     1Darray :

          ($N N_c$,) vector, where $N$ is the Enskog approximation order and $N_c$ isthe number of components. The vector is ordered as

     l[:

          N_c] = [$\ell_1^{(0)}$, $\ell_2^{(0)}$, …, $\ell_{N_c}^{(0)}$]

     l[N_c :

          2 * N_c] = [$\ell_1^{(1)}$, $\ell_2^{(1)}$, …, $\ell_{N_c}^{(1)}$]… etc … Where subscripts indicate component indices, and superscripts are Enskog approximation order summation indices.

compute_diffusion_coeff_vector(self, particle_density, T, mole_fracs, N=None)

Compute the diffusive response function Sonine polynomial expansion coefficients by solving the set of equations

\[D d = \delta\]

Corresponding to Eq. (10) in RET for Mie fluids (https://doi.org/10.1063/5.0149865) Where $D$ is the matrix returned by the c++ method get_diffusion_matrix, and $\delta$ is the vector returned by the c++ method get_diffusion_vector.

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     mole_fracs (list[float]) :

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     1Darray :

          ($N N_c^2$,) vector, where $N$ is the Enskog approximation order and $N_c$ isthe number of components, containing the diffusive response function sonine polynomial expansion coefficients ($d_{i, j}^{(q)}$). See reshape_diffusive_coeff_vector for help on practical usage.

compute_dth_vector(self, particle_density, T, mole_fracs, N=None)

Compute the coefficients $d_i^{(J = 0)}$, by solving the set of equations

\(\sum_j d_{i,j}^{(0)} d_j^{\vec{J} = 0} = \ell_i^{(0)}\),

i.e. Eq. (15) in RET for Mie fluids (https://doi.org/10.1063/5.0149865)

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     **mole_fracs (list) :**

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     1Darray :

          Vector of the $d_i^{(J = 0)}$ coefficients.

compute_visc_vector(self, T, particle_density, mole_fracs, N=None)

Compute the viscous response function Sonine polynomial expansion coefficients by solving the set of equations

\[\Beta b = eta\]

Corresponding to Eq. (8) in RET for Mie fluids (https://doi.org/10.1063/5.0149865) Where $\Beta$ is the matrix returned by the c++ method get_viscosity_matrix, and $eta$ is the vector returned by the c++ method get_viscosity_vector.

Args:

     particle_density (float) :

          Particle density (not molar!) [1 / m3]

     T (float) :

          Temperature [K]

     **mole_fracs (list) :**

          Molar composition [-]

     N (Optional, int) :

          Enskog approximation order.

Returns:

     1D array :

          ($N N_c$,) vector, where $N$ is the Enskog approximation order and $N_c$ isthe number of components, ordered as

     b[:

          N_c] = [b_1^{(0)}, b_2^{(0)}, …, b_{N_c}^{(0)}]

     b[N_c:

          2 * N_c] = [b_1^{(1)}, b_2^{(1)}, …, b_{N_c}^{(1)}]… etc … where subscripts denote component indices and superscripts denote Enskog approximation summation indices.

get_Eij(self, Vm, T, x)

Compute the factors

\[( n_i / k_B T ) (d \mu_i / d n_j)_{T, n_{k \neq j}},\]

where $n_i$ is the molar density of species $i$.

Args:

     Vm (float) :

          Molar volume [m3 / mol]

     T (float) :

          Temperature [K]

     x (array_like) :

          Molar composition

Returns:

     (2D array) :

          The factors E[i][j] = $ ( n_i / k_B T ) (d \mu_i / d n_j){T, n{k \neq j}}$, where $n_i$is the molar density of species $i$. Unit [1 / mol]

get_P_factors(self, Vm, T, x)

Compute the factors $\Xi_i = \sum_j E_{ij}$, where $E_{ij}$ are the factors computed by get_Eij.

Args:

     Vm (float) :

          Molar volume [m3 / mol]

     T (float) :

          Temperature [K]

     x (array_like) :

          Molar composition

Returns:

     (1D array) :

          The factors $\Xi_i$, Unit [1 / mol]

reshape_diffusion_coeff_vector(self, d)

The vector returned by compute_diffusion_coeff_vector contains the diffusive response function sonine polynomial expansion coefficients (eg. $d_{i, j}^{(q)}$ ). To more easily access the correct coefficients, this method reshapes the vector to a matrix indiced as d[i][q][j] where i and j are component indices, and q refferes to the approximation order summation index.

Args:

     d (1D array) :

          The array returned by get_diffusion_coeff_vector

Returns:

     3D array :

          The matrix of $d_{i, j}^{(q)}$ coefficients ordered as d[i][q][j]