ararpy 0.1.199__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ararpy/Example - Check arr.py +52 -0
- ararpy/Example - Granite Cooling History.py +411 -0
- ararpy/Example - Plot temperature calibration.py +291 -0
- ararpy/Example - Show MDD results.py +561 -0
- ararpy/Example - Show all Kfs age spectra.py +344 -0
- ararpy/Example - Show random walk results.py +363 -0
- ararpy/Example - Tc calculation.py +437 -0
- ararpy/__init__.py +3 -4
- ararpy/calc/age.py +34 -36
- ararpy/calc/arr.py +0 -20
- ararpy/calc/basic.py +26 -3
- ararpy/calc/corr.py +131 -85
- ararpy/calc/jvalue.py +7 -5
- ararpy/calc/plot.py +1 -2
- ararpy/calc/raw_funcs.py +41 -2
- ararpy/calc/regression.py +224 -132
- ararpy/files/arr_file.py +2 -1
- ararpy/files/basic.py +0 -22
- ararpy/files/calc_file.py +107 -84
- ararpy/files/raw_file.py +242 -229
- ararpy/smp/basic.py +133 -34
- ararpy/smp/calculation.py +6 -6
- ararpy/smp/corr.py +339 -153
- ararpy/smp/diffusion_funcs.py +345 -36
- ararpy/smp/export.py +247 -129
- ararpy/smp/info.py +2 -2
- ararpy/smp/initial.py +93 -45
- ararpy/smp/json.py +2 -2
- ararpy/smp/plots.py +144 -164
- ararpy/smp/raw.py +11 -15
- ararpy/smp/sample.py +222 -181
- ararpy/smp/style.py +26 -7
- ararpy/smp/table.py +42 -33
- ararpy/thermo/atomic_level_random_walk.py +56 -48
- ararpy/thermo/basic.py +2 -2
- {ararpy-0.1.199.dist-info → ararpy-0.2.2.dist-info}/METADATA +10 -1
- ararpy-0.2.2.dist-info/RECORD +73 -0
- {ararpy-0.1.199.dist-info → ararpy-0.2.2.dist-info}/WHEEL +1 -1
- ararpy-0.1.199.dist-info/RECORD +0 -66
- {ararpy-0.1.199.dist-info → ararpy-0.2.2.dist-info}/licenses/LICENSE +0 -0
- {ararpy-0.1.199.dist-info → ararpy-0.2.2.dist-info}/top_level.txt +0 -0
ararpy/smp/style.py
CHANGED
|
@@ -19,7 +19,7 @@ Sample = samples.Sample
|
|
|
19
19
|
Table = samples.Table
|
|
20
20
|
Plot = samples.Plot
|
|
21
21
|
|
|
22
|
-
TABLEHEADER = lambda
|
|
22
|
+
TABLEHEADER = lambda sample_type, index: {
|
|
23
23
|
'Unknown': ['',
|
|
24
24
|
samples.SAMPLE_INTERCEPT_HEADERS, samples.BLANK_INTERCEPT_HEADERS,
|
|
25
25
|
samples.CORRECTED_HEADERS, samples.DEGAS_HEADERS, samples.PUBLISH_TABLE_HEADERS,
|
|
@@ -55,6 +55,7 @@ def set_plot_style(smp: Sample):
|
|
|
55
55
|
-------
|
|
56
56
|
|
|
57
57
|
"""
|
|
58
|
+
|
|
58
59
|
# Reset styles
|
|
59
60
|
initial.initial_plot_styles(smp, except_attrs=['data'])
|
|
60
61
|
# Auto scale
|
|
@@ -64,7 +65,10 @@ def set_plot_style(smp: Sample):
|
|
|
64
65
|
# Auto position and contents of texts
|
|
65
66
|
reset_text(smp)
|
|
66
67
|
# Set title, which are deleted in initializing
|
|
67
|
-
|
|
68
|
+
exp_name = smp.Info.experiment.name
|
|
69
|
+
smp_name = smp.Info.sample.name
|
|
70
|
+
name = f"{exp_name} {smp_name}" if str(exp_name).lower().strip() != str(smp_name).lower().strip() else exp_name
|
|
71
|
+
suffix = f"{name} {smp.Info.sample.material}"
|
|
68
72
|
for figure_id, figure in basic.get_components(smp).items():
|
|
69
73
|
if isinstance(figure, Plot):
|
|
70
74
|
if not hasattr(figure, 'title'):
|
|
@@ -84,15 +88,28 @@ def reset_plot_scale(smp: Sample, only_figure: str = None):
|
|
|
84
88
|
-------
|
|
85
89
|
tuple of two tuples, (xscale, yscale)
|
|
86
90
|
"""
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
87
94
|
for k, v in basic.get_components(smp).items():
|
|
88
95
|
if not isinstance(v, Plot):
|
|
89
96
|
continue
|
|
90
97
|
if only_figure is not None and k != only_figure:
|
|
91
98
|
continue
|
|
99
|
+
|
|
100
|
+
try:
|
|
101
|
+
params_to_check = {
|
|
102
|
+
v.name: [
|
|
103
|
+
{'data': v.data, 'dtype': float, 'class': 'k1', },
|
|
104
|
+
],
|
|
105
|
+
}
|
|
106
|
+
except (IndexError, AttributeError) as e:
|
|
107
|
+
raise ValueError(f"{v.name}, {str(e)}")
|
|
108
|
+
if not basic.validate_params(**params_to_check):
|
|
109
|
+
return
|
|
110
|
+
|
|
92
111
|
if k == 'figure_1':
|
|
93
112
|
try:
|
|
94
|
-
# data = calc.arr.transpose(
|
|
95
|
-
# v.data + v.data + v.set1.data + v.set1.data + v.set2.data + v.set2.data)
|
|
96
113
|
k0 = calc.arr.transpose(v.data)
|
|
97
114
|
k1 = calc.arr.transpose(v.set1.data) if len(v.set1.data) != 0 else [[]] * 3
|
|
98
115
|
k2 = calc.arr.transpose(v.set2.data) if len(v.set2.data) != 0 else [[]] * 3
|
|
@@ -109,7 +126,7 @@ def reset_plot_scale(smp: Sample, only_figure: str = None):
|
|
|
109
126
|
xscale = calc.plot.get_axis_scale(xlist)
|
|
110
127
|
yscale = [0, 0.004, 4, 0.001]
|
|
111
128
|
except (Exception, BaseException):
|
|
112
|
-
|
|
129
|
+
print(traceback.format_exc())
|
|
113
130
|
continue
|
|
114
131
|
elif k == 'figure_7':
|
|
115
132
|
try:
|
|
@@ -121,7 +138,7 @@ def reset_plot_scale(smp: Sample, only_figure: str = None):
|
|
|
121
138
|
setattr(getattr(v, 'zaxis'), 'max', zscale[1])
|
|
122
139
|
setattr(getattr(v, 'zaxis'), 'split_number', zscale[2])
|
|
123
140
|
except (Exception, BaseException):
|
|
124
|
-
|
|
141
|
+
print(traceback.format_exc())
|
|
125
142
|
continue
|
|
126
143
|
elif k == 'figure_9':
|
|
127
144
|
try:
|
|
@@ -141,7 +158,7 @@ def reset_plot_scale(smp: Sample, only_figure: str = None):
|
|
|
141
158
|
xscale = calc.plot.get_axis_scale(xlist)
|
|
142
159
|
yscale = calc.plot.get_axis_scale(ylist)
|
|
143
160
|
except (Exception, BaseException):
|
|
144
|
-
|
|
161
|
+
print(traceback.format_exc())
|
|
145
162
|
continue
|
|
146
163
|
setattr(getattr(v, 'xaxis', Plot.Axis()), 'min', xscale[0])
|
|
147
164
|
setattr(getattr(v, 'xaxis', Plot.Axis()), 'max', xscale[1])
|
|
@@ -195,9 +212,11 @@ def set_table_style(sample: Sample):
|
|
|
195
212
|
-------
|
|
196
213
|
|
|
197
214
|
"""
|
|
215
|
+
std = initial.initial(Sample())
|
|
198
216
|
for key, comp in basic.get_components(sample).items():
|
|
199
217
|
if isinstance(comp, Table):
|
|
200
218
|
comp.header = TABLEHEADER(sample_type=sample.Info.sample.type, index=int(comp.id))
|
|
219
|
+
comp.text_indexes = basic.get_component_byid(std, comp.id).text_indexes
|
|
201
220
|
comp.set_coltypes()
|
|
202
221
|
# comp.colcount = len(comp.header)
|
|
203
222
|
# comp.coltypes = [{'type': 'numeric'}] * (comp.colcount)
|
ararpy/smp/table.py
CHANGED
|
@@ -38,17 +38,13 @@ def update_table_data(smp: Sample, only_table: str = None):
|
|
|
38
38
|
if only_table is not None and key != only_table:
|
|
39
39
|
continue
|
|
40
40
|
if key == '1':
|
|
41
|
-
data =
|
|
42
|
-
smp.SequenceName, smp.SequenceValue, *smp.SampleIntercept)
|
|
41
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.SampleIntercept]
|
|
43
42
|
elif key == '2':
|
|
44
|
-
data =
|
|
45
|
-
smp.SequenceName, smp.SequenceValue, *smp.BlankIntercept)
|
|
43
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.BlankIntercept]
|
|
46
44
|
elif key == '3':
|
|
47
|
-
data =
|
|
48
|
-
smp.SequenceName, smp.SequenceValue, *smp.CorrectedValues)
|
|
45
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.CorrectedValues]
|
|
49
46
|
elif key == '4':
|
|
50
|
-
data =
|
|
51
|
-
smp.SequenceName, smp.SequenceValue, *smp.DegasValues)
|
|
47
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.DegasValues]
|
|
52
48
|
elif key == '5':
|
|
53
49
|
smp.PublishValues[0] = copy.deepcopy(smp.DegasValues[ 0])
|
|
54
50
|
smp.PublishValues[1] = copy.deepcopy(smp.DegasValues[ 8])
|
|
@@ -57,19 +53,31 @@ def update_table_data(smp: Sample, only_table: str = None):
|
|
|
57
53
|
smp.PublishValues[4] = copy.deepcopy(smp.DegasValues[24])
|
|
58
54
|
smp.PublishValues[5:7] = copy.deepcopy(smp.ApparentAgeValues[2:4])
|
|
59
55
|
smp.PublishValues[7:9] = copy.deepcopy(smp.ApparentAgeValues[6:8])
|
|
60
|
-
data =
|
|
61
|
-
smp.SequenceName, smp.SequenceValue, *smp.PublishValues)
|
|
56
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.PublishValues]
|
|
62
57
|
elif key == '6':
|
|
63
|
-
data =
|
|
64
|
-
smp.SequenceName, smp.SequenceValue, *smp.ApparentAgeValues)
|
|
58
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.ApparentAgeValues]
|
|
65
59
|
elif key == '7':
|
|
66
|
-
data =
|
|
67
|
-
smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.IsochronValues)
|
|
60
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.IsochronValues]
|
|
68
61
|
elif key == '8':
|
|
69
|
-
data =
|
|
70
|
-
smp.SequenceName, smp.SequenceValue, *smp.TotalParam)
|
|
62
|
+
data = [smp.SequenceName, smp.SequenceValue, smp.IsochronMark, *smp.TotalParam]
|
|
71
63
|
else:
|
|
72
64
|
data = [['']]
|
|
65
|
+
|
|
66
|
+
try:
|
|
67
|
+
params_to_check = {
|
|
68
|
+
comp.name: [
|
|
69
|
+
{'data': [data[i] for i in comp.text_indexes], 'dtype': str, 'class': 'k1', },
|
|
70
|
+
{'data': [data[i] for i in range(len(data)) if i not in comp.text_indexes], 'dtype': float, 'class': 'k1', },
|
|
71
|
+
],
|
|
72
|
+
'step num': {'data': len(smp.SequenceName), 'dtype': int,
|
|
73
|
+
'func': lambda x: x == smp.Info.experiment.step_num >= 0, 'class': 'k2', },
|
|
74
|
+
}
|
|
75
|
+
except (IndexError, AttributeError) as e:
|
|
76
|
+
raise ValueError(f"{type(e).__name__}, {str(e)}")
|
|
77
|
+
if not basic.validate_params(**params_to_check):
|
|
78
|
+
return
|
|
79
|
+
|
|
80
|
+
comp.set_colcount(len(data))
|
|
73
81
|
# calc.arr.replace(data, pd.isnull, None)
|
|
74
82
|
setattr(comp, 'data', calc.arr.transpose(data))
|
|
75
83
|
|
|
@@ -111,42 +119,43 @@ def update_handsontable(smp: Sample, data: list, id: str):
|
|
|
111
119
|
|
|
112
120
|
update_all_table = False
|
|
113
121
|
try:
|
|
114
|
-
if data[1] != smp.SequenceValue:
|
|
122
|
+
if data[1] != smp.SequenceValue or data[2] != smp.IsochronMark:
|
|
115
123
|
update_all_table = True
|
|
116
124
|
smp.SequenceValue = data[1]
|
|
125
|
+
smp.IsochronMark = data[2]
|
|
117
126
|
except IndexError:
|
|
127
|
+
print(f"Check sequence value / isochron mark failed")
|
|
118
128
|
pass
|
|
119
129
|
|
|
120
130
|
if id == '1': # 样品值
|
|
121
|
-
data = _normalize_data(data, len(samples.SAMPLE_INTERCEPT_HEADERS),
|
|
131
|
+
data = _normalize_data(data, len(samples.SAMPLE_INTERCEPT_HEADERS), 3)
|
|
122
132
|
smp.SampleIntercept = _digitize_data(data)
|
|
123
133
|
elif id == '2': # 本底值
|
|
124
|
-
data = _normalize_data(data, len(samples.BLANK_INTERCEPT_HEADERS),
|
|
134
|
+
data = _normalize_data(data, len(samples.BLANK_INTERCEPT_HEADERS), 3)
|
|
125
135
|
smp.BlankIntercept = _digitize_data(data)
|
|
126
136
|
elif id == '3': # 校正值
|
|
127
|
-
data = _normalize_data(data, len(samples.CORRECTED_HEADERS),
|
|
137
|
+
data = _normalize_data(data, len(samples.CORRECTED_HEADERS), 3)
|
|
128
138
|
smp.CorrectedValues = _digitize_data(data)
|
|
129
139
|
elif id == '4': # Degas table
|
|
130
|
-
data = _normalize_data(data, len(samples.DEGAS_HEADERS),
|
|
140
|
+
data = _normalize_data(data, len(samples.DEGAS_HEADERS), 3)
|
|
131
141
|
smp.DegasValues = _digitize_data(data)
|
|
132
142
|
elif id == '5': # 发行表
|
|
133
|
-
data = _normalize_data(data, len(samples.PUBLISH_TABLE_HEADERS),
|
|
143
|
+
data = _normalize_data(data, len(samples.PUBLISH_TABLE_HEADERS), 3)
|
|
134
144
|
smp.PublishValues = _digitize_data(data)
|
|
135
145
|
elif id == '6': # 年龄谱
|
|
136
|
-
data = _normalize_data(data, len(samples.SPECTRUM_TABLE_HEADERS),
|
|
146
|
+
data = _normalize_data(data, len(samples.SPECTRUM_TABLE_HEADERS), 3)
|
|
137
147
|
smp.ApparentAgeValues = _digitize_data(data)
|
|
138
148
|
elif id == '7': # 等时线
|
|
139
|
-
smp.IsochronMark = _digitize_data(data)[2]
|
|
140
149
|
data = _normalize_data(data, len(samples.ISOCHRON_TABLE_HEADERS), 3)
|
|
141
150
|
smp.IsochronValues = _digitize_data(data)
|
|
142
|
-
smp.sequence()
|
|
143
151
|
elif id == '8': # 总参数
|
|
144
|
-
data = _normalize_data(data, len(samples.TOTAL_PARAMS_HEADERS),
|
|
152
|
+
data = _normalize_data(data, len(samples.TOTAL_PARAMS_HEADERS), 3)
|
|
145
153
|
data = _digitize_data(data)
|
|
146
154
|
data[101: 112] = [_strToBool(i) for i in data[101: 112]]
|
|
147
155
|
smp.TotalParam = data
|
|
148
156
|
else:
|
|
149
157
|
raise ValueError(f"{id = }, The table id is not supported.")
|
|
158
|
+
smp.sequence()
|
|
150
159
|
if update_all_table:
|
|
151
160
|
update_table_data(smp)
|
|
152
161
|
else:
|
|
@@ -171,21 +180,21 @@ def update_data_from_table(smp: Sample, only_table: str = None):
|
|
|
171
180
|
if only_table is not None and key != only_table:
|
|
172
181
|
continue
|
|
173
182
|
if key == '1':
|
|
174
|
-
smp.SampleIntercept = calc.arr.transpose(comp.data)[
|
|
183
|
+
smp.SampleIntercept = calc.arr.transpose(comp.data)[3:]
|
|
175
184
|
elif key == '2':
|
|
176
|
-
smp.BlankIntercept = calc.arr.transpose(comp.data)[
|
|
185
|
+
smp.BlankIntercept = calc.arr.transpose(comp.data)[3:]
|
|
177
186
|
elif key == '3':
|
|
178
|
-
smp.CorrectedValues = calc.arr.transpose(comp.data)[
|
|
187
|
+
smp.CorrectedValues = calc.arr.transpose(comp.data)[3:]
|
|
179
188
|
elif key == '4':
|
|
180
|
-
smp.DegasValues = calc.arr.transpose(comp.data)[
|
|
189
|
+
smp.DegasValues = calc.arr.transpose(comp.data)[3:]
|
|
181
190
|
elif key == '5':
|
|
182
|
-
smp.PublishValues = calc.arr.transpose(comp.data)[
|
|
191
|
+
smp.PublishValues = calc.arr.transpose(comp.data)[3:]
|
|
183
192
|
elif key == '6':
|
|
184
|
-
smp.ApparentAgeValues = calc.arr.transpose(comp.data)[
|
|
193
|
+
smp.ApparentAgeValues = calc.arr.transpose(comp.data)[3:]
|
|
185
194
|
elif key == '7':
|
|
186
195
|
smp.IsochronValues = calc.arr.transpose(comp.data)[3:]
|
|
187
196
|
elif key == '8':
|
|
188
|
-
smp.TotalParam = calc.arr.transpose(comp.data)[
|
|
197
|
+
smp.TotalParam = calc.arr.transpose(comp.data)[3:]
|
|
189
198
|
else:
|
|
190
199
|
pass
|
|
191
200
|
|
|
@@ -127,8 +127,9 @@ def walker2(pos: np.ndarray, duration, step_length, min_bound, max_bound, time_s
|
|
|
127
127
|
:return:
|
|
128
128
|
"""
|
|
129
129
|
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
# Ar40模拟时不能判断,因为会增加
|
|
131
|
+
# if len(pos) == 0:
|
|
132
|
+
# return pos
|
|
132
133
|
|
|
133
134
|
dimension = pos.shape[-1] if len(pos.shape) > 1 else 1
|
|
134
135
|
|
|
@@ -141,7 +142,6 @@ def walker2(pos: np.ndarray, duration, step_length, min_bound, max_bound, time_s
|
|
|
141
142
|
conditions = np.array([[-50, -50, 50, 50, 1]])
|
|
142
143
|
|
|
143
144
|
for step in range(int(1e16)):
|
|
144
|
-
|
|
145
145
|
n = parent - int(parent * math.exp(-1 * decay * dt / (3600 * 24 * 365.2425)))
|
|
146
146
|
# print(f"number of new pos = {n}")
|
|
147
147
|
parent = parent - n
|
|
@@ -288,6 +288,8 @@ class DiffSimulation:
|
|
|
288
288
|
self.end_at = 0
|
|
289
289
|
self.dimension = 3
|
|
290
290
|
|
|
291
|
+
self.thermal_log = []
|
|
292
|
+
|
|
291
293
|
self.size_scale = 1
|
|
292
294
|
self.length_scale = 1
|
|
293
295
|
|
|
@@ -373,7 +375,7 @@ class DiffSimulation:
|
|
|
373
375
|
boundary_factor = 0.1 ** (k * math.log10(1 + (max(conditions[:, -1]) // 1000)))
|
|
374
376
|
step_length = self.step_length / np.sqrt(pos.shape[1] if len(pos.shape) > 1 else 1)
|
|
375
377
|
scale = int(total_steps)
|
|
376
|
-
|
|
378
|
+
print(f"调整后: {nsteps_factor = }, gamma = {conditions[0][-1]}, {total_steps = }, {compensation = }, {boundary_factor = }")
|
|
377
379
|
|
|
378
380
|
_pos = walker(
|
|
379
381
|
copy.deepcopy(pos), step_length=step_length, total_nsteps=total_steps,
|
|
@@ -437,7 +439,7 @@ class DiffSimulation:
|
|
|
437
439
|
self.remained_per_step.append(len(pos))
|
|
438
440
|
self.released_per_step.append(self.natoms - len(pos))
|
|
439
441
|
|
|
440
|
-
print(f"{index = } {duration} - {heating_duration = } - {temperature = } - {total_steps = } - conc = {len(pos) / self.natoms * 100:.2f}% - {time.time() - _start:.5f}s")
|
|
442
|
+
print(f"{index = } {duration = }s - {heating_duration = }s - {temperature = }K - {total_steps = } - conc = {len(pos) / self.natoms * 100:.2f}% - {time.time() - _start:.5f}s")
|
|
441
443
|
|
|
442
444
|
self.positions = copy.deepcopy(pos)
|
|
443
445
|
|
|
@@ -452,6 +454,49 @@ class DiffSimulation:
|
|
|
452
454
|
return self.run_sequence(*seq, domains=domains, nsteps_factor=scale, simulating=simulation,
|
|
453
455
|
epsilon=epsilon, start_time=start_time)
|
|
454
456
|
|
|
457
|
+
def demo_init(n, es, fs, di, gs, ds, fr, ss=1):
|
|
458
|
+
demo = DiffSimulation()
|
|
459
|
+
# fs 应从大到小,父空间在前,子空间在后
|
|
460
|
+
|
|
461
|
+
# demo.grain_size = 300
|
|
462
|
+
# demo.size_scale = 0.05
|
|
463
|
+
# demo.atom_density = 1e14 # 原子密度 个/立方厘米
|
|
464
|
+
|
|
465
|
+
demo.dimension = di # dimension, 1 or 3
|
|
466
|
+
demo.size_scale = 1 # size_scale
|
|
467
|
+
demo.grain_size = gs # grain_szie
|
|
468
|
+
demo.frequency = fr # frequency
|
|
469
|
+
|
|
470
|
+
# domains应该从外到内
|
|
471
|
+
domains = []
|
|
472
|
+
for i in range(n-1, 0-1, -1):
|
|
473
|
+
size = int(demo.grain_size * fs[i]) * demo.size_scale
|
|
474
|
+
center = np.zeros(demo.dimension)
|
|
475
|
+
if isinstance(ds, (int, float)) or len(ds) == 1:
|
|
476
|
+
demo.atom_density = ds # atom_density # 原子密度 个/立方厘米
|
|
477
|
+
if i == 2:
|
|
478
|
+
ad = ds * 5 / 4
|
|
479
|
+
else:
|
|
480
|
+
ad = ds
|
|
481
|
+
else:
|
|
482
|
+
ad = ds[i]
|
|
483
|
+
dom = Domain(
|
|
484
|
+
dimension=demo.dimension, atom_density=ad, min_bound=center - size / 2, max_bound=center + size / 2,
|
|
485
|
+
energy=es[i], fraction=fs[i], inclusions=[domains[-1]] if len(domains) >= 1 else []
|
|
486
|
+
)
|
|
487
|
+
domains.append(dom)
|
|
488
|
+
# domains应该从外到内, 上面为了inclusion以及方便不同扩散域设置不同的密度,要按照从小到大的顺序生成,但是后面行走的时候要根据不同条件设置系数,要从外到内
|
|
489
|
+
demo.domains = sorted(domains, key=lambda dom: dom.fraction, reverse=True)
|
|
490
|
+
|
|
491
|
+
demo.setup()
|
|
492
|
+
|
|
493
|
+
a = [f"{dom.fraction = }, {dom.energy = }, {dom.natoms = }, {dom.atom_density = }" for dom in demo.domains]
|
|
494
|
+
|
|
495
|
+
print(
|
|
496
|
+
f"Total Atoms: {demo.natoms}\n" + "\n".join(a)
|
|
497
|
+
)
|
|
498
|
+
|
|
499
|
+
return demo
|
|
455
500
|
|
|
456
501
|
def run(times, temps, statuses, energies, fractions, ndoms: int = 1, grain_szie=275, atom_density=1e10, frequency=1e13,
|
|
457
502
|
dimension: int = 3, targets: list = None, epsilon: float = 0.001, simulation: bool = False,
|
|
@@ -472,43 +517,12 @@ def run(times, temps, statuses, energies, fractions, ndoms: int = 1, grain_szie=
|
|
|
472
517
|
:return:
|
|
473
518
|
"""
|
|
474
519
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
# demo.grain_size = 300
|
|
481
|
-
# demo.size_scale = 0.05
|
|
482
|
-
# demo.atom_density = 1e14 # 原子密度 个/立方厘米
|
|
483
|
-
demo.dimension = dimension
|
|
484
|
-
|
|
485
|
-
demo.size_scale = 1
|
|
486
|
-
demo.grain_size = grain_szie
|
|
487
|
-
demo.atom_density = atom_density # 原子密度 个/立方厘米
|
|
488
|
-
demo.frequency = frequency
|
|
489
|
-
|
|
490
|
-
# domains应该从外到内
|
|
491
|
-
domains = []
|
|
492
|
-
for i in range(n-1, 0-1, -1):
|
|
493
|
-
size = int(demo.grain_size * fs[i]) * demo.size_scale
|
|
494
|
-
center = np.zeros(demo.dimension)
|
|
495
|
-
if i == 2:
|
|
496
|
-
ad = demo.atom_density * 5 / 4
|
|
497
|
-
else:
|
|
498
|
-
ad = demo.atom_density
|
|
499
|
-
dom = Domain(
|
|
500
|
-
dimension=demo.dimension, atom_density=ad, min_bound=center - size / 2, max_bound=center + size / 2,
|
|
501
|
-
energy=es[i], fraction=fs[i], inclusions=[domains[-1]] if len(domains) >= 1 else []
|
|
502
|
-
)
|
|
503
|
-
domains.append(dom)
|
|
504
|
-
# domains应该从外到内, 上面为了inclusion以及方便不同扩散域设置不同的密度,要按照从小到大的顺序生成,但是后面行走的时候要根据不同条件设置系数,要从外到内
|
|
505
|
-
demo.domains = sorted(domains, key=lambda dom: dom.fraction, reverse=True)
|
|
506
|
-
|
|
507
|
-
demo.setup()
|
|
508
|
-
|
|
520
|
+
try:
|
|
521
|
+
# demo.run_persecond(times=times, temperatures=temps, domains=demo.domains, targets=target,
|
|
522
|
+
# epsilon=epsilon, simulation=simulation)
|
|
523
|
+
demo = demo_init(ndoms, energies, fractions, dimension, grain_szie, atom_density, frequency, ss=1)
|
|
509
524
|
demo.name = f"{file_name}"
|
|
510
|
-
|
|
511
|
-
print(f"Total Atoms: {demo.natoms}, atoms in each dom: {[dom.natoms for dom in demo.domains]} filename: {demo.name}")
|
|
525
|
+
demo.thermal_log = list(zip(times, temps))
|
|
512
526
|
|
|
513
527
|
if positions is not None:
|
|
514
528
|
demo.positions = positions
|
|
@@ -516,13 +530,7 @@ def run(times, temps, statuses, energies, fractions, ndoms: int = 1, grain_szie=
|
|
|
516
530
|
|
|
517
531
|
demo.run_sequence(times=times, temperatures=temps, statuses=statuses, targets=targets, domains=demo.domains,
|
|
518
532
|
epsilon=epsilon, simulating=simulation, **kwargs)
|
|
519
|
-
|
|
520
|
-
# epsilon=epsilon, simulation=simulation)
|
|
521
|
-
|
|
522
|
-
return demo
|
|
523
|
-
|
|
524
|
-
try:
|
|
525
|
-
return _(ndoms, energies, fractions), True
|
|
533
|
+
return demo, True
|
|
526
534
|
except OverEpsilonError as e:
|
|
527
535
|
if ignore_error:
|
|
528
536
|
return demo, False
|
ararpy/thermo/basic.py
CHANGED
|
@@ -235,7 +235,7 @@ def get_tc(da2, sda2, E, sE, cooling_rate=10, temp_in_celsius=True, temp=None, A
|
|
|
235
235
|
R = 8.314 if R is None else R # in J/K mol
|
|
236
236
|
Tc = 600
|
|
237
237
|
sTc = 0
|
|
238
|
-
Tm =
|
|
238
|
+
Tm = 9999999999 if temp is None else temp
|
|
239
239
|
Tm = Tm + 273.15 if temp_in_celsius else Tm
|
|
240
240
|
cooling_rate = cooling_rate / 1000000
|
|
241
241
|
|
|
@@ -243,8 +243,8 @@ def get_tc(da2, sda2, E, sE, cooling_rate=10, temp_in_celsius=True, temp=None, A
|
|
|
243
243
|
iter_diff = 100
|
|
244
244
|
while abs(iter_diff) > 0.01 and iter_num < 100:
|
|
245
245
|
tau = R * Tc ** 2 / (E * cooling_rate)
|
|
246
|
-
# new_Tc = (E/R) / log(A * tau * da2)
|
|
247
246
|
new_Tc = (R / E) * log(A * tau * da2) + 1 / Tm #
|
|
247
|
+
# new_Tc = (R / E) * log(A * tau * da2)
|
|
248
248
|
d1 = cooling_rate / (A * da2 * Tc ** 2)
|
|
249
249
|
s1 = d1 ** 2 * sda2 ** 2 # da2
|
|
250
250
|
d2 = R / E ** 2 * (log(A * tau * da2) + 1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ararpy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: A project for Ar-Ar geochronology
|
|
5
5
|
Home-page: https://github.com/wuyangchn/ararpy.git
|
|
6
6
|
Author: Yang Wu
|
|
@@ -12,6 +12,14 @@ Classifier: Operating System :: OS Independent
|
|
|
12
12
|
Requires-Python: >=3.5
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
+
Requires-Dist: chardet
|
|
16
|
+
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: pandas
|
|
18
|
+
Requires-Dist: parse
|
|
19
|
+
Requires-Dist: scipy
|
|
20
|
+
Requires-Dist: xlrd
|
|
21
|
+
Requires-Dist: XlsxWriter
|
|
22
|
+
Requires-Dist: pdf_maker
|
|
15
23
|
Dynamic: author
|
|
16
24
|
Dynamic: author-email
|
|
17
25
|
Dynamic: classifier
|
|
@@ -20,6 +28,7 @@ Dynamic: description-content-type
|
|
|
20
28
|
Dynamic: home-page
|
|
21
29
|
Dynamic: license
|
|
22
30
|
Dynamic: license-file
|
|
31
|
+
Dynamic: requires-dist
|
|
23
32
|
Dynamic: requires-python
|
|
24
33
|
Dynamic: summary
|
|
25
34
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
ararpy/Example - Check arr.py,sha256=c9HUUZySUXOYk4eCqiPSp124G2sYpFP5zoMl0FXdalE,1709
|
|
2
|
+
ararpy/Example - Granite Cooling History.py,sha256=V4V63RVp1gocOZX0T3OOGOiVhCA1DqrCyJnXgFvEcUs,14917
|
|
3
|
+
ararpy/Example - Plot temperature calibration.py,sha256=8pR-WKqdaIKQTuuSbfwXuxoEkCop4zhmZUMJSARWDOg,10879
|
|
4
|
+
ararpy/Example - Show MDD results.py,sha256=YFkiQual60lyCClsfvivr4REY6waSYuomf0uo5soUHE,22635
|
|
5
|
+
ararpy/Example - Show all Kfs age spectra.py,sha256=1edPtBpFfS0lC7vLnLu34mDHt_xjbc8ptk6rZ--pf-I,12304
|
|
6
|
+
ararpy/Example - Show random walk results.py,sha256=8WWvbAI7ySiMR-XwtFe5kTQihW3mcqzL3S7EUZdoxYo,15477
|
|
7
|
+
ararpy/Example - Tc calculation.py,sha256=sD9pu3IaZ8mBV95rV2wOEhlQUexFNqBUoBqnNMdUBis,19617
|
|
8
|
+
ararpy/__init__.py,sha256=wz69XzhfcI0QMPU2QJ8gZoWEsG2vHeSE7b5E7GytwI0,6767
|
|
9
|
+
ararpy/test.py,sha256=4F46-JJ1Ge12HGae0qO44Qc6kiEMHBgn2MsY_5LlHDo,3973
|
|
10
|
+
ararpy/calc/__init__.py,sha256=kUjRuLE8TLuKOv3i976RnGJoEMj23QBZDu37LWs81U4,322
|
|
11
|
+
ararpy/calc/age.py,sha256=WOZs70zXiBWDIEhXJLIaNiYTOFJNk0NDbH5e5zCbCks,5435
|
|
12
|
+
ararpy/calc/arr.py,sha256=x6z16N2H6QFYAPY11lnPRFZsZfwWu2tSEo87q7M9Ym4,14869
|
|
13
|
+
ararpy/calc/basic.py,sha256=AMQrhkNHhHtiguqTe4GPOYLuV8TEJBXpRJXJAoOwD9w,4634
|
|
14
|
+
ararpy/calc/corr.py,sha256=qh77w1uJ98x6b_N-0_u1seWc7YLtCRClpxG6fuYHx-M,21667
|
|
15
|
+
ararpy/calc/err.py,sha256=63LtprqjemlIb1QGDst4Ggcv5KMSDHdlAIL-nyQs1eA,2691
|
|
16
|
+
ararpy/calc/histogram.py,sha256=0GVbDdsjd91KQ1sa2B7NtZ4KGo0XpRIJapgIrzAwQUo,5777
|
|
17
|
+
ararpy/calc/isochron.py,sha256=ej9G2e68k6yszonWHsLcEubh3TA7eh1upTJP_X0ttAA,5726
|
|
18
|
+
ararpy/calc/jvalue.py,sha256=IJan8dNL4vBblSkBHIguPROb-RJPPEej0CpkXm2osMM,1221
|
|
19
|
+
ararpy/calc/plot.py,sha256=Hdtb-q18xYC8ZJeDKGRauCSbj4_7e6Z8HQs9aYgfvao,2139
|
|
20
|
+
ararpy/calc/raw_funcs.py,sha256=sbuCFNWyzIoBkE4Bvka7i2TofXpJtnm6SzGH9VFLtAw,4144
|
|
21
|
+
ararpy/calc/regression.py,sha256=m2_xJAsQ7mBIbnrmxtSPIQapJH61jkxvXskxN-8f86k,42803
|
|
22
|
+
ararpy/calc/spectra.py,sha256=_Q23eP9necHlaCoHf3_UfW1N3JmVZj5rcWFro8GS-CA,1995
|
|
23
|
+
ararpy/examples/022_VU124-M11a.ahd,sha256=3m0Gd-ZObou3KsnRNFMf77QwzT1Uz3nu3vA33Sqeyng,5414
|
|
24
|
+
ararpy/examples/20WHA0103.age,sha256=cT-a4d7Wt77aotx6v0G47vulY_TZIcZUcaVHB3pqTPM,380416
|
|
25
|
+
ararpy/examples/22WHA0078.xls,sha256=1XAAHmIhuswwZ3toCT-qTLrYzqXNDYWGjDyCTI3xaMY,2611729
|
|
26
|
+
ararpy/examples/22WHA0433.age,sha256=YRM9l5S0cU20eD7en_5iR3a-eZk7btmjcU1Drae2QwM,421888
|
|
27
|
+
ararpy/examples/22WHA0433.arr,sha256=ddfeVEXXw5T4LoIicK1GGxXHjwtpXcuPbO8Oj0Vui04,238259
|
|
28
|
+
ararpy/examples/22WHA0433.full.xls,sha256=bupB_YZxtQKd6hh0MRBCKu7cRtiIhchtjHJ4Tjss_9Q,335872
|
|
29
|
+
ararpy/examples/24WHN0001-51-592.XLS,sha256=hwTNoJf-ZyAVSd3SPNrwhRGO7dVS7brr2Ys-Sf8LbBI,140800
|
|
30
|
+
ararpy/examples/AHD.input-filter,sha256=qJpqULIX-3b7JANzfg1sB61tf8cU2nxoncna8nTWwio,441
|
|
31
|
+
ararpy/examples/ArAr.calc,sha256=i7da0rx-M4l0-j1vXOqsaCw3T8txQNGH3gON70-qmyA,599
|
|
32
|
+
ararpy/examples/ArArCALC.age,sha256=Ft4I9BnWjbqsgn6ACCklioLyhHSKuIlbmqgFwOyb9M0,231936
|
|
33
|
+
ararpy/examples/NGX-600 - Copy.TXT,sha256=EBaQZ6nVbR6R0bqtZVphcfXX2QaoD0R4INeaPMs_UoM,83752
|
|
34
|
+
ararpy/examples/NGX-600.TXT,sha256=RQc5we9kTYetXmsCN8ThFPMhNLN2q82umeszSoCzMJE,81731
|
|
35
|
+
ararpy/examples/NGX-XLS.input-filter,sha256=iyfTLsLHf0h58ePOsNQoBtG6UBLIf7V-zTGioRoWkxA,501
|
|
36
|
+
ararpy/examples/Qtegra-exported-xls.input-filter,sha256=KuD3Dey82ecuKnqNMQqOcY3VXHgKbpE9Yxfl1ZC4_so,441
|
|
37
|
+
ararpy/examples/S01-239.csv,sha256=J_PHT85XCxPd3TEGzBARGwKSkiAzz1nzNbrKUf00GBU,39566
|
|
38
|
+
ararpy/examples/WH01.irra,sha256=Ws78m5p3fD4oybtkOWoAtvFyuLPxpL_A_ueIg2tnhnw,365
|
|
39
|
+
ararpy/examples/WHA.pdf,sha256=iopbptHkWPmYdgihEVDDfv2nm2XE-Q-e7fFnkR44Xh0,178692
|
|
40
|
+
ararpy/examples/raw_example.xls,sha256=ftcSiXRx_7nYnbqJVma1Yl3Yr_iuceAWlEjhJwlAvFM,1929895
|
|
41
|
+
ararpy/examples/sample-default.smp,sha256=YNkoQGgPrsL_fXS7ZHxfRtLQWekCDqT9czS6vBScImk,432
|
|
42
|
+
ararpy/files/__init__.py,sha256=l5B5ZQ01WdtvjjN0aMkyAFNgpwANdM_1I0tQbqnRuEY,69
|
|
43
|
+
ararpy/files/arr_file.py,sha256=pD5MxkAydL7cNq2wmKFUaOU4jHhc3MzTYrwbxZ3f46w,881
|
|
44
|
+
ararpy/files/basic.py,sha256=k2GXgZjhqSmKvpXQLjsXDksS_ZLvqD7AWW54fXnYvTI,1228
|
|
45
|
+
ararpy/files/calc_file.py,sha256=CmZsgUj2t2FnLcCE38pbOqej7M-CbhQs6KMFXE3PbQA,29233
|
|
46
|
+
ararpy/files/new_file.py,sha256=efblARIBROVLWS2w3-98BxLX5VZ8grRpiTkJFtf_rAk,214
|
|
47
|
+
ararpy/files/raw_file.py,sha256=X2_RjlNOUbdkA9MM2ZMNlZmGL7jc1-eV-Wy-bIu2bb0,20592
|
|
48
|
+
ararpy/files/xls.py,sha256=DVcZ_yRnc19p-m4leGGjt-YPDpSa2udYKmGyrM0qub0,640
|
|
49
|
+
ararpy/smp/EXPORT_TO_PDF_DATA_PROPERTIES.py,sha256=baDM437tu6hsPv0uYfod0TREXlPd6kvMBFT1S9ZZlkk,3024
|
|
50
|
+
ararpy/smp/__init__.py,sha256=k6_fa27UJsQK7K7oC5GYlwMo6l0Xd8af3QtOrZz2XJk,478
|
|
51
|
+
ararpy/smp/basic.py,sha256=uJJjQajTzg4X7tg4loTgg8ilvWJqBhZIYmIXY_F-VUQ,28601
|
|
52
|
+
ararpy/smp/calculation.py,sha256=4Vg0HNbAGdTVdYIt17WeoKPmrTjmq9EqaP44P8AxT9U,2874
|
|
53
|
+
ararpy/smp/consts.py,sha256=XIdjdz8cYxspG2jMnoItdlUsxr3hKbNFJjMZJh1bpzw,393
|
|
54
|
+
ararpy/smp/corr.py,sha256=FBovb2T-pkrjq1OGVh0znYijQYw3BdRLTqoeHzUDHF4,38049
|
|
55
|
+
ararpy/smp/diffusion_funcs.py,sha256=X6LC1XY-vub5BpAuZMlyA5k3DQcU8Qqf5uukwGjJOxw,186690
|
|
56
|
+
ararpy/smp/export.py,sha256=nJhyPtrbOYR30JncePNKR87IpCzVgy4wyo6FZ0kJMEY,120438
|
|
57
|
+
ararpy/smp/info.py,sha256=tpEIjrE4nR-GAYTricBk9gq0LuHh6F1Bt7HPo1rS2HM,497
|
|
58
|
+
ararpy/smp/initial.py,sha256=hSDU3nptrECErDDgGcrLB0g7UmcnRshY_rv1YG0jdmw,19270
|
|
59
|
+
ararpy/smp/json.py,sha256=zfJCC_2LCDckqC8Fpu10jEA6Knl3UtKO31I5g4fvsBE,2273
|
|
60
|
+
ararpy/smp/plots.py,sha256=hU3VyAyEkR_3enWvMHfuL_Ajjg-cK9f7SUHBKwHkmVQ,32577
|
|
61
|
+
ararpy/smp/raw.py,sha256=77J1dEYL4ZSeftp4tyog_Cy1Y5bwHNaLqJK4i4KLOSY,6500
|
|
62
|
+
ararpy/smp/sample.py,sha256=tCDCAS_KgJy4qN1nCGWTikZfsBu5EV1giccLI3gRY5g,60066
|
|
63
|
+
ararpy/smp/style.py,sha256=kP1YnyAoVbKXfEARsrCiz0lTYipW3xEKqR4vIfuVNe4,8206
|
|
64
|
+
ararpy/smp/table.py,sha256=9D1oGlYtoVgRte5lxOWYZbEManyudO5un-t7V6LQ-qg,7351
|
|
65
|
+
ararpy/thermo/__init__.py,sha256=6VBuqTRFl403PVqOuMkVrut0nKaQsAosBmfW91X1dMg,263
|
|
66
|
+
ararpy/thermo/arrhenius.py,sha256=Ass1ichHfqIAtpv8eLlgrUc1UOb3Urh1qzr1E3gLB4U,233
|
|
67
|
+
ararpy/thermo/atomic_level_random_walk.py,sha256=ncw9DtxRfS6zlQbLVLNX7WNoO9sX_nSomwAsTH0_O3k,25910
|
|
68
|
+
ararpy/thermo/basic.py,sha256=JJRZbYmvXlpRAV2FeFPwLhrig4ZhNQmJnWqgOjo-1YQ,11508
|
|
69
|
+
ararpy-0.2.2.dist-info/licenses/LICENSE,sha256=cvG5t_C1qY_zUyJI7sNOa7gCArdngNPaOrfujl2LYuc,1085
|
|
70
|
+
ararpy-0.2.2.dist-info/METADATA,sha256=wvnw6khN1TWEJEGRbAunuJ3A95geGtqgvmAwCN7wGAc,24726
|
|
71
|
+
ararpy-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
72
|
+
ararpy-0.2.2.dist-info/top_level.txt,sha256=9iTpsPCYuRYq09yQTk9d2lqB8JtTEOmbN-IcGB-K3vY,7
|
|
73
|
+
ararpy-0.2.2.dist-info/RECORD,,
|
ararpy-0.1.199.dist-info/RECORD
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
ararpy/__init__.py,sha256=pYgGSZqLShU0gpXzw0ACDxxCRJRm2Y78YlZxBAkes00,6858
|
|
2
|
-
ararpy/test.py,sha256=4F46-JJ1Ge12HGae0qO44Qc6kiEMHBgn2MsY_5LlHDo,3973
|
|
3
|
-
ararpy/calc/__init__.py,sha256=kUjRuLE8TLuKOv3i976RnGJoEMj23QBZDu37LWs81U4,322
|
|
4
|
-
ararpy/calc/age.py,sha256=OcStt55LoYW1brs7a5_Ovv1NUSR5uZVQHDVGGmA_Pqg,5784
|
|
5
|
-
ararpy/calc/arr.py,sha256=jD1Fd0Cj3xc7NqgnG4cp3VWQWxUlV0qCtPBZZokDG8o,15246
|
|
6
|
-
ararpy/calc/basic.py,sha256=uJCCUFaPd9zvfkggrdbFYSGLl2pt7UJ7ENgXanzHy68,4036
|
|
7
|
-
ararpy/calc/corr.py,sha256=6hlBlFIM8HyN6CDuWPGqiLpVM88pZJLEuRm8vAyg9ng,18747
|
|
8
|
-
ararpy/calc/err.py,sha256=63LtprqjemlIb1QGDst4Ggcv5KMSDHdlAIL-nyQs1eA,2691
|
|
9
|
-
ararpy/calc/histogram.py,sha256=0GVbDdsjd91KQ1sa2B7NtZ4KGo0XpRIJapgIrzAwQUo,5777
|
|
10
|
-
ararpy/calc/isochron.py,sha256=ej9G2e68k6yszonWHsLcEubh3TA7eh1upTJP_X0ttAA,5726
|
|
11
|
-
ararpy/calc/jvalue.py,sha256=OL5zPYU8Pac-wOxUWPCgu3onh2n01xDnhpi2mlUsjJM,1146
|
|
12
|
-
ararpy/calc/plot.py,sha256=sUqjKBdAEjFarUoSCLqf8cbUM0rEAdZhmtyXB2K7LkA,2139
|
|
13
|
-
ararpy/calc/raw_funcs.py,sha256=UC01lvA6GyZ5FJv43jgoUULAFoLnZJMxeSa0BeVFCAM,2637
|
|
14
|
-
ararpy/calc/regression.py,sha256=w5kni6LGqvISvlvbBZnJ3N2c5eQjgkz3bBbj0PXPyGs,40251
|
|
15
|
-
ararpy/calc/spectra.py,sha256=_Q23eP9necHlaCoHf3_UfW1N3JmVZj5rcWFro8GS-CA,1995
|
|
16
|
-
ararpy/examples/022_VU124-M11a.ahd,sha256=3m0Gd-ZObou3KsnRNFMf77QwzT1Uz3nu3vA33Sqeyng,5414
|
|
17
|
-
ararpy/examples/20WHA0103.age,sha256=cT-a4d7Wt77aotx6v0G47vulY_TZIcZUcaVHB3pqTPM,380416
|
|
18
|
-
ararpy/examples/22WHA0078.xls,sha256=1XAAHmIhuswwZ3toCT-qTLrYzqXNDYWGjDyCTI3xaMY,2611729
|
|
19
|
-
ararpy/examples/22WHA0433.age,sha256=YRM9l5S0cU20eD7en_5iR3a-eZk7btmjcU1Drae2QwM,421888
|
|
20
|
-
ararpy/examples/22WHA0433.arr,sha256=ddfeVEXXw5T4LoIicK1GGxXHjwtpXcuPbO8Oj0Vui04,238259
|
|
21
|
-
ararpy/examples/22WHA0433.full.xls,sha256=bupB_YZxtQKd6hh0MRBCKu7cRtiIhchtjHJ4Tjss_9Q,335872
|
|
22
|
-
ararpy/examples/24WHN0001-51-592.XLS,sha256=hwTNoJf-ZyAVSd3SPNrwhRGO7dVS7brr2Ys-Sf8LbBI,140800
|
|
23
|
-
ararpy/examples/AHD.input-filter,sha256=qJpqULIX-3b7JANzfg1sB61tf8cU2nxoncna8nTWwio,441
|
|
24
|
-
ararpy/examples/ArAr.calc,sha256=i7da0rx-M4l0-j1vXOqsaCw3T8txQNGH3gON70-qmyA,599
|
|
25
|
-
ararpy/examples/ArArCALC.age,sha256=Ft4I9BnWjbqsgn6ACCklioLyhHSKuIlbmqgFwOyb9M0,231936
|
|
26
|
-
ararpy/examples/NGX-600 - Copy.TXT,sha256=EBaQZ6nVbR6R0bqtZVphcfXX2QaoD0R4INeaPMs_UoM,83752
|
|
27
|
-
ararpy/examples/NGX-600.TXT,sha256=RQc5we9kTYetXmsCN8ThFPMhNLN2q82umeszSoCzMJE,81731
|
|
28
|
-
ararpy/examples/NGX-XLS.input-filter,sha256=iyfTLsLHf0h58ePOsNQoBtG6UBLIf7V-zTGioRoWkxA,501
|
|
29
|
-
ararpy/examples/Qtegra-exported-xls.input-filter,sha256=KuD3Dey82ecuKnqNMQqOcY3VXHgKbpE9Yxfl1ZC4_so,441
|
|
30
|
-
ararpy/examples/S01-239.csv,sha256=J_PHT85XCxPd3TEGzBARGwKSkiAzz1nzNbrKUf00GBU,39566
|
|
31
|
-
ararpy/examples/WH01.irra,sha256=Ws78m5p3fD4oybtkOWoAtvFyuLPxpL_A_ueIg2tnhnw,365
|
|
32
|
-
ararpy/examples/WHA.pdf,sha256=iopbptHkWPmYdgihEVDDfv2nm2XE-Q-e7fFnkR44Xh0,178692
|
|
33
|
-
ararpy/examples/raw_example.xls,sha256=ftcSiXRx_7nYnbqJVma1Yl3Yr_iuceAWlEjhJwlAvFM,1929895
|
|
34
|
-
ararpy/examples/sample-default.smp,sha256=YNkoQGgPrsL_fXS7ZHxfRtLQWekCDqT9czS6vBScImk,432
|
|
35
|
-
ararpy/files/__init__.py,sha256=l5B5ZQ01WdtvjjN0aMkyAFNgpwANdM_1I0tQbqnRuEY,69
|
|
36
|
-
ararpy/files/arr_file.py,sha256=KqksGlEA6nmMQofTgi7v45flscQZVtefxaNCKrV3Am4,837
|
|
37
|
-
ararpy/files/basic.py,sha256=nc7Hgo_qLSkdmtKzZmd5SQ8Jy0dhW46ly4gh-oisUDs,2095
|
|
38
|
-
ararpy/files/calc_file.py,sha256=nqv_VfbOzz8ejcnjNoHJafGiYldhYSOLusUGtuZ8jR0,28207
|
|
39
|
-
ararpy/files/new_file.py,sha256=efblARIBROVLWS2w3-98BxLX5VZ8grRpiTkJFtf_rAk,214
|
|
40
|
-
ararpy/files/raw_file.py,sha256=5hnZMS7r78lA0ZXrBEN5SWVurQyl0QsHOI9rJz5BQv8,22302
|
|
41
|
-
ararpy/files/xls.py,sha256=DVcZ_yRnc19p-m4leGGjt-YPDpSa2udYKmGyrM0qub0,640
|
|
42
|
-
ararpy/smp/EXPORT_TO_PDF_DATA_PROPERTIES.py,sha256=baDM437tu6hsPv0uYfod0TREXlPd6kvMBFT1S9ZZlkk,3024
|
|
43
|
-
ararpy/smp/__init__.py,sha256=k6_fa27UJsQK7K7oC5GYlwMo6l0Xd8af3QtOrZz2XJk,478
|
|
44
|
-
ararpy/smp/basic.py,sha256=slRu3VnnQ4zCaA5GFqcd_N_Pby1_8lIsvhhLhHIJ7As,24821
|
|
45
|
-
ararpy/smp/calculation.py,sha256=LCFJWjLVLEKEQ5b7RFUIxsMahEzgLdodW4kCYXV5Z34,2919
|
|
46
|
-
ararpy/smp/consts.py,sha256=XIdjdz8cYxspG2jMnoItdlUsxr3hKbNFJjMZJh1bpzw,393
|
|
47
|
-
ararpy/smp/corr.py,sha256=s1t8VCM7M8WnwfIxWNIRva4ofGJPEPYpKxlb25skH8E,26515
|
|
48
|
-
ararpy/smp/diffusion_funcs.py,sha256=4-PMMIZWzjk2HOYYWNgSp4GmApygp1MmOxJ2g3xrqWc,175049
|
|
49
|
-
ararpy/smp/export.py,sha256=s89L5B1aHoCeJIjcw6nXA6NtV0j_5XXaWnOETWnomCs,115043
|
|
50
|
-
ararpy/smp/info.py,sha256=iKUELm-BuUduDlJKC1d8tKKNHbwwbNmhUg2pi6bcBvA,489
|
|
51
|
-
ararpy/smp/initial.py,sha256=VSNku2fYD1xGkpHxMqnSJCAhSQawfsDCdqYCxtDJryQ,17196
|
|
52
|
-
ararpy/smp/json.py,sha256=BTZCjVN0aj9epc700nwkYEYMKN2lHBYo-pLmtnz5oHY,2300
|
|
53
|
-
ararpy/smp/plots.py,sha256=Grx4GY2kh5KtvAwUV1iIDvQNQSrQd7IaliQ4cT6w01Y,33637
|
|
54
|
-
ararpy/smp/raw.py,sha256=51n-rrbW2FqeZHQyevuG7iObPLGvIBzTe414QDVM1FE,6523
|
|
55
|
-
ararpy/smp/sample.py,sha256=ZOrQt3Ilm6tJbQCwh_btoZOXdkCngZFHCt10Nh0UmpI,57727
|
|
56
|
-
ararpy/smp/style.py,sha256=gCJ3F_vHnetrfbzEt-KgG5clRfosvJ00RJg6tN53QsQ,7678
|
|
57
|
-
ararpy/smp/table.py,sha256=9bNAOqAIOc0nSC3LNeqjJKUYSJSM28Ji3o9VimwMU8A,6645
|
|
58
|
-
ararpy/thermo/__init__.py,sha256=6VBuqTRFl403PVqOuMkVrut0nKaQsAosBmfW91X1dMg,263
|
|
59
|
-
ararpy/thermo/arrhenius.py,sha256=Ass1ichHfqIAtpv8eLlgrUc1UOb3Urh1qzr1E3gLB4U,233
|
|
60
|
-
ararpy/thermo/atomic_level_random_walk.py,sha256=Q97zfe2h2RaxADkoBAqd0uEiP16BFOajrTmXHMkL2EQ,25502
|
|
61
|
-
ararpy/thermo/basic.py,sha256=nBGHI9uK7VdJwThwBIOcKAzdnYqPyQseFoY6s4zKizk,11504
|
|
62
|
-
ararpy-0.1.199.dist-info/licenses/LICENSE,sha256=cvG5t_C1qY_zUyJI7sNOa7gCArdngNPaOrfujl2LYuc,1085
|
|
63
|
-
ararpy-0.1.199.dist-info/METADATA,sha256=qXSAfULa1Ha9bpoyosss1MzEfO69BEjReHjLkIcaTEU,24517
|
|
64
|
-
ararpy-0.1.199.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
65
|
-
ararpy-0.1.199.dist-info/top_level.txt,sha256=9iTpsPCYuRYq09yQTk9d2lqB8JtTEOmbN-IcGB-K3vY,7
|
|
66
|
-
ararpy-0.1.199.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|