-
Notifications
You must be signed in to change notification settings - Fork 172
/
Mercury.py
138 lines (125 loc) · 7.58 KB
/
Mercury.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
from openpnm.phases import GenericPhase
import openpnm.models as mods
class Mercury(GenericPhase):
r"""
Creates Phase object with a default name 'Hg' and preset values and
pore-scale models for mercury.
Parameters
----------
network : OpenPNM Network object
The network to which this phase object will be attached.
project : OpenPNM Project object, optional
Can be supplied instead of ``network``
References
----------
[1] Thermophysical Properties of Materials for Nuclear Engineering: IAEA,
Vienna, 2008. ISBN 978-92-0-106508-7:
Examples
--------
>>> import openpnm as op
>>> pn = op.network.Cubic(shape=[5, 5, 5])
>>> hg = op.phases.Mercury(network=pn)
Notes
-----
The table below shows all of the pore-scale models that are included with
this class to calculate the physical properties of this fluid as functions
of the relevant state variables.
This object is initialized at standard conditions of 298 K and 101325 Pa.
If these conditions are changed the dependent properties can be
recalculated by calling ``regenerate_models``.
All of these parameters can be adjusted manually by editing the entries in
the **ModelsDict** stored in the ``models`` attribute of the object.
For a full listing of models and their parameters use ``print(obj.models)``
where ``obj`` is the handle to the object.
In addition to these models, this class also has a number of constant
values assigned to it which can be found by running
``props(mode='constants')``.
+---+----------------------+------------------+--------------------------+
| # | Property Name | Parameter | Value |
+===+======================+==================+==========================+
| 1 | pore.vapor_pressure | model: | antoine |
+---+----------------------+------------------+--------------------------+
| | | A | 9.85767 |
+---+----------------------+------------------+--------------------------+
| | | B | 3007.129 |
+---+----------------------+------------------+--------------------------+
| | | C | -10.001 |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
| | | temperature | pore.temperature |
+---+----------------------+------------------+--------------------------+
| 2 | pore.density | model: | linear |
+---+----------------------+------------------+--------------------------+
| | | prop | pore.temperature |
+---+----------------------+------------------+--------------------------+
| | | b | 14280.9 |
+---+----------------------+------------------+--------------------------+
| | | m | -2.47004 |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
| 3 | pore.molar_density | model: | standard |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
| | | mol_weight | pore.molecular_weight |
+---+----------------------+------------------+--------------------------+
| | | density | pore.density |
+---+----------------------+------------------+--------------------------+
| 4 | pore.surface_tension | model: | linear |
+---+----------------------+------------------+--------------------------+
| | | prop | pore.temperature |
+---+----------------------+------------------+--------------------------+
| | | b | 0.56254 |
+---+----------------------+------------------+--------------------------+
| | | m | -0.00028 |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
| 5 | pore.thermal_cond... | model: | polynomial |
+---+----------------------+------------------+--------------------------+
| | | prop | pore.temperature |
+---+----------------------+------------------+--------------------------+
| | | a | [3.98691, 0.0170967, ... |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
| 6 | pore.viscosity | model: | polynomial |
+---+----------------------+------------------+--------------------------+
| | | prop | pore.temperature |
+---+----------------------+------------------+--------------------------+
| | | a | [0.00355837, -1.00131... |
+---+----------------------+------------------+--------------------------+
| | | regen_mode | normal |
+---+----------------------+------------------+--------------------------+
"""
def __init__(self, name=None, **kwargs):
super().__init__(name=name, **kwargs)
self['pore.molecular_weight'] = 0.2006
self['pore.critical_pressure'] = 1.662E8
self['pore.critical_temperature'] = 1733
self['pore.critical_volume'] = 0.000189
self['pore.contact_angle'] = 140
self.add_model(propname='pore.vapor_pressure',
model=mods.phases.vapor_pressure.antoine,
A=9.85767, B=3007.129, C=-10.001)
self.add_model(propname='pore.density',
model=mods.misc.linear,
prop='pore.temperature',
b=14280.9, m=-2.47004)
self.add_model(propname='pore.molar_density',
model=mods.phases.molar_density.standard)
self.add_model(propname='pore.surface_tension',
model=mods.misc.linear,
prop='pore.temperature',
b=0.56254, m=-0.00028)
self.add_model(propname='pore.thermal_conductivity',
model=mods.misc.polynomial,
prop='pore.temperature',
a=[3.98691, 0.0170967, -0.0000063862])
self.add_model(propname='pore.viscosity',
model=mods.misc.polynomial,
prop='pore.temperature',
a=[0.00355837, -0.0000100131, 1.23684E-08, -5.1684E-12])
self.regenerate_models()