flunits#
Module for accessing Fluent units labels per quantity type.
Example#
>>> units = get_si_unit_for_fluent_quantity("pressure")
The following code is employed to translate the source data into Python data structures:
from ansys.fluent.core.filereader import lispy from ansys.units import Quantity, Unit from ansys.units.quantity import get_si_value import re from pprint import pprint
- fl_unit_re_subs = {
‘deg’: ‘radian’, ‘rad’: ‘radian’, ‘Ohm’: ‘ohm’
}
fl_unit_subs = {‘%’: ‘’}
- def replace_units(match):
return fl_unit_re_subs[match.group(0)]
- def substitute_fl_units_with_py_units(fl_units_dict):
subs = {} for k, v in fl_units_dict.items():
new_val = re.sub(‘|’.join(r’%s’ % re.escape(s) for s in fl_unit_re_subs), replace_units, v) if new_val != v:
subs[k] = new_val
- else:
new_val = fl_unit_subs.get(v, None) if new_val is not None:
subs[k] = new_val
print(“Substitutions:”) for k, v in subs.items():
print(f”’{fl_units_dict[k]}’ -> ‘{v}’ for ‘{k}’”)
fl_units_dict.update(subs) return fl_units_dict
- def remove_unhandled_units(fl_units_dict):
not_si = {} unhandled = {} for k, v in fl_units_dict.items():
- try:
Unit(v) q = Quantity(1.0, v) if get_si_value(q) != 1.0:
not_si[k] = v
- except Exception:
unhandled[k] = v
print(“Not SI:”) pprint(not_si) print(“Unhandled:”) pprint(unhandled) [fl_units_dict.pop(key) for key in list(not_si) + list(unhandled)] return fl_units_dict
- def make_python_fl_unit_table(scheme_unit_table):
as_list = lispy.parse(scheme_unit_table)[1][1] as_dict = { x[0]:x[1][3].split(‘”’)[1] for x in as_list } return remove_unhandled_units(substitute_fl_units_with_py_units(as_dict))
Output from most recent run to generate the table below:
>>> pprint(make_python_fl_unit_table(fl_scheme_unit_table))
Substitutions:
'deg' -> 'radian' for 'angle'
'rad s^-1' -> 'radian s^-1' for 'angular-velocity'
'Ohm m^3' -> 'ohm m^3' for 'contact-resistance-vol'
'deg' -> 'radian' for 'crank-angle'
'Ohm m^2' -> 'ohm m^2' for 'elec-contact-resistance'
'Ohm m' -> 'ohm m' for 'elec-resistivity'
'Ohm' -> 'ohm' for 'elec-resistance'
'%' -> '' for 'percentage'
'N m rad^-1' -> 'N m radian^-1' for 'spring-constant-angular'
Not SI:
{'concentration': 'kmol m^-3',
'elec-charge': 'A h',
'molec-wt': 'kg kmol^-1',
'soot-sitespecies-concentration': 'kmol m^-3'}
Unhandled:
{'crank-angular-velocity': 'rev min^-1',
'energy-density': 'J/m2',
'mole-con-henry-const': 'Pa m^3 kgmol^-1',
'mole-specific-energy': 'J kgmol^-1',
'mole-specific-entropy': 'J kgmol^-1 K^-1',
'mole-transfer-rate': 'kgmol m^-3 s^-1',
'particles-conc': '1.e15-particles/kg',
'particles-rate': '1.e15 m^-3 s^-1',
'site-density': 'kgmol m^-2',
'soot-limiting-nuclei-rate': '1e+15-particles/m3-s',
'soot-oxidation-constant': 'kg m kgmol^-1 K^-0.5 s^-1',
'soot-pre-exponential-constant': '1.e15 kg^-1 s^-1',
'soot-surface-growth-scale-factor': 'kg m kgmol^-1 s^-1',
'surface-mole-transfer-rate': 'kgmol m^-2 s^-1',
'univ-gas-constant': 'J K^-1 kgmol^-1',
'viscosity-consistency-index': 'kg s^n-2 m^-1',
'wave-length': 'Angstrom'}
Exceptions:
|
Raised on an attempt to get a Quantity with invalid type. |
|
Raised on an attempt to get an unhandled Quantity. |
|
Raised on an attempt to get undefined units for the specified Quantity. |
Functions:
|
Get the SI unit for the given Fluent quantity. |
- exception ansys.fluent.core.solver.flunits.InvalidQuantityType(quantity)#
Bases:
TypeError
Raised on an attempt to get a Quantity with invalid type.
- __init__(quantity)#
- exception ansys.fluent.core.solver.flunits.UnhandledQuantity(path, quantity)#
Bases:
RuntimeError
Raised on an attempt to get an unhandled Quantity.
- __init__(path, quantity)#
- exception ansys.fluent.core.solver.flunits.UnitsNotDefinedForQuantity(quantity)#
Bases:
ValueError
Raised on an attempt to get undefined units for the specified Quantity.
- __init__(quantity)#
- ansys.fluent.core.solver.flunits.get_si_unit_for_fluent_quantity(quantity, unit_table=None)#
Get the SI unit for the given Fluent quantity.
- Raises:
InvalidQuantityType
If
quantity
is not a string instance, unless it is None.