Skip to content

Commit f609b7e

Browse files
committed
added data and function background examples and example test
1 parent a82b036 commit f609b7e

File tree

6 files changed

+580
-1
lines changed

6 files changed

+580
-1
lines changed

RATapi/examples/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
from RATapi.examples.absorption.absorption import absorption
2-
from RATapi.examples.convert_rascal_project import convert_rascal
2+
from RATapi.examples.convert_rascal_project.convert_rascal import convert_rascal
33
from RATapi.examples.domains.domains_custom_layers import domains_custom_layers
44
from RATapi.examples.domains.domains_custom_XY import domains_custom_XY
55
from RATapi.examples.domains.domains_standard_layers import domains_standard_layers
66
from RATapi.examples.non_polarised.DSPC_custom_layers import DSPC_custom_layers
77
from RATapi.examples.non_polarised.DSPC_custom_XY import DSPC_custom_XY
8+
from RATapi.examples.non_polarised.DSPC_data_background import DSPC_data_background
9+
from RATapi.examples.non_polarised.DSPC_function_background import DSPC_function_background
810
from RATapi.examples.non_polarised.DSPC_standard_layers import DSPC_standard_layers
911

1012
__all__ = [
@@ -15,5 +17,7 @@
1517
"DSPC_custom_layers",
1618
"DSPC_custom_XY",
1719
"DSPC_standard_layers",
20+
"DSPC_data_background",
21+
"DSPC_function_background",
1822
"convert_rascal",
1923
]
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
0.011403 1.90034798968076e-06 -9.65035874608547e-07
2+
0.011973 1.81361996101478e-06 -4.67852140773275e-09
3+
0.012572 1.5763144199176e-06 -1.36151693657437e-06
4+
0.013201 2.66861902156408e-06 5.28737972088124e-07
5+
0.013861 1.19184137102607e-06 6.5429177234931e-07
6+
0.014554 1.75409120253422e-06 -4.50039804064594e-07
7+
0.015281 1.51534921649628e-06 3.54060605152339e-07
8+
0.016045 1.76294603973655e-06 2.30273872099416e-07
9+
0.016848 1.66691808740296e-06 1.02729272466451e-06
10+
0.01769 2.2391873415575e-06 2.02710446930881e-07
11+
0.018575 1.47947093349392e-06 9.31566506641381e-07
12+
0.019503 1.58967045467121e-06 6.58308695637623e-09
13+
0.020479 2.05056480300655e-06 -4.18637528083399e-07
14+
0.021502 2.54199126843229e-06 6.96150360898885e-08
15+
0.022578 1.07273638130851e-06 -5.94598550176916e-08
16+
0.023706 2.89987639289405e-06 8.05335897612554e-07
17+
0.024892 1.56081284721073e-06 5.50847432744533e-08
18+
0.026136 2.32386636321661e-06 -5.72991095509919e-07
19+
0.027443 2.52478251612625e-06 -2.38750704688337e-08
20+
0.028815 2.66154668842285e-06 1.05087573637142e-06
21+
0.030256 1.74132051718101e-06 -2.3192582338868e-07
22+
0.031769 2.01215747485553e-06 -4.26893410009117e-07
23+
0.033357 1.91881656322323e-06 8.87192534478923e-07
24+
0.035025 1.69716945696631e-06 1.80981995646851e-07
25+
0.036777 2.13585488200451e-06 -1.90164659296111e-07
26+
0.038615 2.17932170608953e-06 -4.91062265460096e-07
27+
0.040546 1.82384243860966e-06 -1.08387392818395e-06
28+
0.042573 2.06617996409986e-06 2.22697399577916e-07
29+
0.044702 3.33679088859971e-06 -1.53613977488785e-07
30+
0.046937 1.99621696227773e-06 3.55134601922439e-07
31+
0.049284 2.3551514683307e-06 -1.06523727035749e-06
32+
0.051748 1.76873031859355e-06 1.15746760150783e-06
33+
0.054336 1.73606104969994e-06 4.89763150040874e-07
34+
0.057052 1.82710646654775e-06 -1.15330099931726e-06
35+
0.059905 2.28227888686718e-06 9.45647703159621e-07
36+
0.0629 1.59923042799896e-06 -3.70062237263438e-07
37+
0.066045 1.07352660741589e-06 3.41777294345909e-07
38+
0.069348 2.02660800872659e-06 2.75569910736786e-07
39+
0.072815 1.78179239147256e-06 -6.0256088120987e-07
40+
0.076456 2.14000373613308e-06 -2.18911980741668e-06
41+
0.080279 2.04230294359047e-06 5.284442372682e-07
42+
0.084292 2.36455952978407e-06 -1.73629847921614e-07
43+
0.088507 2.45037654782291e-06 -3.78287083788833e-07
44+
0.092932 1.33718085273407e-06 4.35130166728242e-07
45+
0.097579 1.23771058575749e-06 -4.51744576618967e-07
46+
0.10246 2.25121666653143e-06 6.36952833032752e-07
47+
0.10758 2.15319571282475e-06 2.20717968415214e-07
48+
0.11296 1.53041976734067e-06 -6.93055107868105e-07
49+
0.11861 2.61870106321507e-06 7.69463958198665e-07
50+
0.12454 2.01650595727752e-06 4.79607176188218e-07
51+
0.13077 2.06178415911062e-06 1.10173268381594e-06
52+
0.1373 2.13696968977538e-06 -6.14098124528528e-07
53+
0.14417 2.3770829041412e-06 -6.16219383494697e-07
54+
0.15138 2.7622487528669e-06 3.50660742020884e-07
55+
0.15895 1.86901211887215e-06 6.33626529015099e-07
56+
0.16689 1.13465824611353e-06 7.62493241842828e-07
57+
0.17524 2.50673214999504e-06 1.05207422581854e-07
58+
0.184 1.53613195077685e-06 -8.87137577093779e-08
59+
0.1932 2.62184014311179e-06 6.22256875962273e-07
60+
0.20286 1.70525565120706e-06 1.67162600924891e-06
61+
0.213 2.74574086739327e-06 8.07667338780613e-07
62+
0.22365 1.59701095264287e-06 1.67629565660922e-07
63+
0.23484 1.4437004736234e-06 -3.59611249006791e-07
64+
0.24658 2.47846978404969e-06 4.99800504594724e-07
65+
0.25891 1.31847420553136e-06 -2.87283586089481e-07
66+
0.27185 2.34029248136207e-06 2.90756508518823e-07
67+
0.28544 2.21891181128286e-06 7.22598553179947e-07
68+
0.29972 1.92836622666398e-06 8.39418345516717e-07
69+
0.3147 1.82923374769972e-06 5.70510331434857e-07
70+
0.33044 3.02890531703209e-06 1.20234742176368e-06
71+
0.34696 1.8127324822871e-06 1.58096394623758e-06
72+
0.36431 1.90489840127358e-06 -1.41813181395574e-06
73+
0.38252 1.53063379469415e-06 -1.32294734328625e-06
74+
0.40165 1.59326881780842e-06 -6.38112989285387e-07
75+
0.42173 1.7081906242357e-06 -1.49834166690205e-06
76+
0.44282 2.85476268526193e-06 -1.85680046178151e-07
77+
0.46496 1.80479009111448e-06 -1.69120607911057e-07
78+
0.48821 1.6549673183601e-06 3.00340803829798e-07
79+
0.51262 1.77588964903545e-06 3.28929520936145e-07
80+
0.53825 2.35718817504981e-06 -4.48934854489947e-07
81+
0.56516 1.34213437585845e-06 -5.50651590195596e-07
82+
0.59342 2.31356104763158e-06 7.347220470815e-07
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
import pathlib
2+
3+
import numpy as np
4+
5+
import RATapi as RAT
6+
7+
8+
def DSPC_data_background():
9+
"""Standard Layers fit of a DSPC floating bilayer"""
10+
problem = RAT.Project(name="original_dspc_bilayer", model="standard layers", geometry="substrate/liquid")
11+
12+
# Set up the relevant parameters
13+
problem.parameters.append(name="Oxide Thickness", min=5.0, value=19.54, max=60.0, fit=True)
14+
problem.parameters.append(name="Oxide SLD", min=3.39e-06, value=3.39e-06, max=3.41e-06, fit=False)
15+
problem.parameters.append(name="SAM Tails Thickness", min=15.0, value=22.66, max=35.0, fit=True)
16+
problem.parameters.append(name="SAM Tails SLD", min=-5e-07, value=-4.01e-07, max=-3e-07, fit=False)
17+
problem.parameters.append(name="SAM Tails Hydration", min=1.0, value=5.252, max=50.0, fit=True)
18+
problem.parameters.append(name="SAM Roughness", min=1.0, value=5.64, max=15.0, fit=True)
19+
problem.parameters.append(name="CW Thickness", min=10.0, value=17.12, max=28.0, fit=True)
20+
problem.parameters.append(name="CW SLD", min=0.0, value=0.0, max=1e-09, fit=False)
21+
22+
problem.parameters.append(
23+
name="SAM Heads Thickness",
24+
min=5.0,
25+
value=8.56,
26+
max=17.0,
27+
fit=True,
28+
prior_type="gaussian",
29+
mu=10.0,
30+
sigma=2.0,
31+
)
32+
problem.parameters.append(name="SAM Heads SLD", min=1.0e-07, value=1.75e-06, max=2.0e-06, fit=False)
33+
problem.parameters.append(
34+
name="SAM Heads Hydration",
35+
min=10.0,
36+
value=45.45,
37+
max=50.0,
38+
fit=True,
39+
prior_type="gaussian",
40+
mu=30.0,
41+
sigma=3.0,
42+
)
43+
problem.parameters.append(
44+
name="Bilayer Heads Thickness",
45+
min=7.0,
46+
value=10.7,
47+
max=17.0,
48+
fit=True,
49+
prior_type="gaussian",
50+
mu=10.0,
51+
sigma=2.0,
52+
)
53+
problem.parameters.append(name="Bilayer Heads SLD", min=5.0e-07, value=1.47e-06, max=1.5e-06, fit=False)
54+
problem.parameters.append(name="Bilayer Roughness", min=2.0, value=6.014, max=15.0, fit=True)
55+
problem.parameters.append(name="Bilayer Tails Thickness", min=14.0, value=17.82, max=22.0, fit=True)
56+
problem.parameters.append(name="Bilayer Tails SLD", min=-5.0e-07, value=-4.61e-07, max=0.0, fit=False)
57+
problem.parameters.append(name="Bilayer Tails Hydration", min=10.0, value=17.64, max=50.0, fit=True)
58+
problem.parameters.append(name="Bilayer Heads Hydration", min=10.0, value=36.15, max=50.0, fit=True)
59+
problem.parameters.append(name="CW Hydration", min=99.9, value=100.0, max=100.0, fit=False)
60+
problem.parameters.append(name="Oxide Hydration", min=0.0, value=23.61, max=60.0, fit=True)
61+
62+
problem.parameters.set_fields(0, max=10)
63+
64+
# Group these into layers
65+
problem.layers.append(
66+
name="Oxide",
67+
thickness="Oxide Thickness",
68+
SLD="Oxide SLD",
69+
roughness="Substrate Roughness",
70+
hydration="Oxide Hydration",
71+
hydrate_with="bulk out",
72+
)
73+
74+
problem.layers.append(
75+
name="SAM Tails",
76+
thickness="SAM Tails Thickness",
77+
SLD="SAM Tails SLD",
78+
roughness="SAM Roughness",
79+
hydration="SAM Tails Hydration",
80+
hydrate_with="bulk out",
81+
)
82+
83+
problem.layers.append(
84+
name="SAM Heads",
85+
thickness="SAM Heads Thickness",
86+
SLD="SAM Heads SLD",
87+
roughness="SAM Roughness",
88+
hydration="SAM Heads Hydration",
89+
hydrate_with="bulk out",
90+
)
91+
92+
problem.layers.append(
93+
name="Central Water",
94+
thickness="CW Thickness",
95+
SLD="CW SLD",
96+
roughness="Bilayer Roughness",
97+
hydration="CW Hydration",
98+
hydrate_with="bulk out",
99+
)
100+
101+
problem.layers.append(
102+
name="Bilayer Heads",
103+
thickness="Bilayer Heads Thickness",
104+
SLD="Bilayer Heads SLD",
105+
roughness="Bilayer Roughness",
106+
hydration="Bilayer Heads Hydration",
107+
hydrate_with="bulk out",
108+
)
109+
110+
problem.layers.append(
111+
name="Bilayer Tails",
112+
thickness="Bilayer Tails Thickness",
113+
SLD="Bilayer Tails SLD",
114+
roughness="Bilayer Roughness",
115+
hydration="Bilayer Tails Hydration",
116+
hydrate_with="bulk out",
117+
)
118+
119+
# Make the bulk SLDs
120+
del problem.bulk_in[0]
121+
problem.bulk_in.append(name="Silicon", min=2.0e-06, value=2.073e-06, max=2.1e-06, fit=False)
122+
123+
del problem.bulk_out[0]
124+
problem.bulk_out.append(name="D2O", min=5.50e-06, value=5.98e-06, max=6.4e-06, fit=True)
125+
problem.bulk_out.append(name="SMW", min=1.0e-06, value=2.21e-06, max=4.99e-06, fit=True)
126+
127+
# Set the scalefactors - use one for each contrast
128+
del problem.scalefactors[0]
129+
problem.scalefactors.append(name="Scalefactor 1", min=0.05, value=0.10, max=0.2, fit=False)
130+
problem.scalefactors.append(name="Scalefactor 2", min=0.05, value=0.15, max=0.2, fit=False)
131+
132+
# Now deal with the backgrounds
133+
# SMW has a constant background
134+
del problem.backgrounds[0]
135+
del problem.background_parameters[0]
136+
problem.background_parameters.append(
137+
name="Background parameter SMW",
138+
min=1.0e-10,
139+
value=3.38e-06,
140+
max=4.99e-06,
141+
fit=True,
142+
)
143+
problem.backgrounds.append(name="SMW Background", type="constant", source="Background parameter SMW")
144+
145+
data_path = pathlib.Path(__file__).parents[1] / "data"
146+
147+
# load in background data for D2O
148+
d2o_background = np.loadtxt(data_path / "d2o_background_data.dat")
149+
problem.data.append(name="D2O Background Data", data=d2o_background)
150+
151+
# add background parameter for the offset
152+
problem.background_parameters.append(
153+
name="D2O Data Offset",
154+
min=-1e-8,
155+
value=0,
156+
max=1e-8,
157+
fit=True,
158+
)
159+
160+
# add the background with data and offset
161+
problem.backgrounds.append(
162+
name="D2O Data Background",
163+
type="data",
164+
source="D2O Background Data",
165+
value_1="D2O Data Offset",
166+
)
167+
168+
# Now add the data
169+
d2o_dat = np.loadtxt(data_path / "DSPC_D2O.dat", delimiter=",")
170+
problem.data.append(name="dspc_bil_D2O", data=d2o_dat)
171+
172+
smw_dat = np.loadtxt(data_path / "DSPC_SMW.dat", delimiter=",")
173+
problem.data.append(name="dspc_bil_smw", data=smw_dat)
174+
175+
# Set the model
176+
stack = [
177+
"Oxide",
178+
"SAM Tails",
179+
"SAM Heads",
180+
"Central Water",
181+
"Bilayer Heads",
182+
"Bilayer Tails",
183+
"Bilayer Tails",
184+
"Bilayer Heads",
185+
]
186+
187+
# Then make the two contrasts
188+
problem.contrasts.append(
189+
name="D2O",
190+
bulk_in="Silicon",
191+
bulk_out="D2O",
192+
background="D2O Data Background",
193+
resolution="Resolution 1",
194+
scalefactor="Scalefactor 1",
195+
data="dspc_bil_D2O",
196+
model=stack,
197+
)
198+
199+
problem.contrasts.append(
200+
name="SMW",
201+
bulk_in="Silicon",
202+
bulk_out="SMW",
203+
background="SMW Background",
204+
resolution="Resolution 1",
205+
scalefactor="Scalefactor 2",
206+
data="dspc_bil_smw",
207+
model=stack,
208+
)
209+
210+
controls = RAT.Controls()
211+
problem, results = RAT.run(problem, controls)
212+
213+
return problem, results
214+
215+
216+
if __name__ == "__main__":
217+
problem, results = DSPC_data_background()
218+
RAT.plotting.plot_ref_sld(problem, results, True)

0 commit comments

Comments
 (0)