pylbo.gimli.equilibrium ======================= .. py:module:: pylbo.gimli.equilibrium Classes ------- .. autoapisummary:: pylbo.gimli.equilibrium.Variables pylbo.gimli.equilibrium.Equilibrium pylbo.gimli.equilibrium.NumericalEquilibrium Module Contents --------------- .. py:class:: Variables Defines a set of variables and constants to be used in defining an Equilibrium object. .. attribute:: x, y, z Coordinates. :type: sympy symbols .. attribute:: rho0, T0, B0sq Density, temperature, and magnetic field squared for use in expressions depending on these quantities. :type: sympy symbols .. attribute:: k2, k3 Wavenumbers. :type: sympy symbols .. attribute:: rhoc, Tc, B2c, B3c, v2c, v3c, pc Constants typically used for amplitudes or uniform terms in their corresponding equilibrium quantities. :type: sympy symbols .. attribute:: p1, p2, p3, p4, p5, p6, p7, p8 Additional free-use constants. :type: sympy symbols .. attribute:: alpha, beta, delta, theta, tau, lamda, nu Additional free-use constants. :type: sympy symbols .. attribute:: r0, rc, rj, Bth0, V, j0, g Additional constants, originally use in cylindrical coordinates. :type: sympy symbols .. attribute:: fkey Dictionary translating LaTeX notation to Legolas variable names. :type: dict .. rubric:: Examples >>> from pylbo.gimli import Variables >>> var = Variables() .. !! processed by numpydoc !! .. py:attribute:: fkey .. py:class:: Equilibrium(var, rho0, v02, v03, T0, B02=None, B03=None, resistivity=None, gravity=None, condpara=None, condperp=None, cooling=None, heating=None) Class containing all equilibrium expressions and initialisation functions. This object is a required argument when generating user files with the Legolas and Amrvac classes. :param var: The Variables object containing the symbols to be used in the equilibrium expressions. :type var: :class:`Variables` :param rho0: The equilibrium density expression. :type rho0: sympy expression :param v02: The equilibrium velocity expressions. :type v02: sympy expressions :param v03: The equilibrium velocity expressions. :type v03: sympy expressions :param T0: The equilibrium temperature expression. :type T0: sympy expression :param B02: The equilibrium magnetic field expressions. :type B02: sympy expressions :param B03: The equilibrium magnetic field expressions. :type B03: sympy expressions :param resistivity: The resistivity expression. :type resistivity: sympy expression :param gravity: The gravitational acceleration. :type gravity: constant :param condpara: The parallel conduction prescription. :type condpara: sympy expression :param condperp: The perpendicular conduction prescription. :type condperp: sympy expression :param cooling: The cooling prescription. :type cooling: sympy expression :param heating: The heating prescription. :type heating: sympy expression .. attribute:: variables Variables object from which all expressions are constructed. :type: Variables object .. attribute:: rho0 The equilibrium density expression. :type: sympy expression .. attribute:: v02, v03 The equilibrium velocity expressions. :type: sympy expressions .. attribute:: T0 The equilibrium temperature expression. :type: sympy expression .. attribute:: B02, B03 The equilibrium magnetic field expressions. :type: sympy expressions .. rubric:: Examples The example below defines a homogeneous hydrodynamic equilibrium with constant density and temperature. Their values can be set later when passing this equilibrium to the Legolas or Amrvac class along with a dictionary. >>> from pylbo.gimli import Equilibrium, Variables >>> var = Variables() >>> eq = Equilibrium(var, rho0=var.rhoc, v02=0, v03=0, T0=var.Tc) .. !! processed by numpydoc !! .. py:attribute:: variables .. py:attribute:: rho0 .. py:attribute:: T0 .. py:attribute:: _dict_phys .. py:method:: get_physics() Returns a dictionary containing the physics expressions and the dependencies to check for. .. !! processed by numpydoc !! .. py:method:: get_dependencies() Checks for dependencies on other equilibrium quantities. Returns a dictionary with the replacement expressions for use in Fortran files. .. !! processed by numpydoc !! .. py:class:: NumericalEquilibrium(arrays) Class to convert numerical arrays to a Legolas-readable format. :param arrays: A dictionary linking key/header to a numerical array. Must contain "rho0" and "T0" and one of ("u1", "x", "r"). Optional arrays are "v01", "v02", "v03", "B01", "B02", "B03", and "grav". :type arrays: dict .. attribute:: arrays Dictionary with specified arrays. :type: dict .. rubric:: Examples The example below defines a homogeneous hydrodynamic equilibrium with constant density and temperature. >>> import numpy as np >>> from pylbo.gimli import NumericalEquilibrium >>> dictionary = { >>> "x" : np.linspace(0, 1, 100), >>> "rho0": 2 * np.ones(100), >>> "T0" : 0.5 * np.ones(100) >>> } >>> equil = NumericalEquilibrium(dictionary) >>> equil.to_legolas_arrays(filename="homogeneous") .. !! processed by numpydoc !! .. py:attribute:: arrays .. py:method:: _validate() .. py:method:: to_legolas_arrays(filename='arrays', loc='./') Prepares a numerical arrays file (.lar) for use with Legolas. :param filename: Name of the .lar file. Default is 'arrays'. :type filename: str, optional :param loc: The location to save the .lar file. Default is the current directory. :type loc: str, optional .. !! processed by numpydoc !!