Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion source/tutorial/bayes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ You can give the prior (alongside :math:`mu`, and :math:`sigma` if relevant) whe

.. code-block:: Python

problem.parameters.append(name='My new param', min=1, value=2, max=3, prior_type="gaussian", mu=0, sigma=1)
problem.parameters.append(name='My new param', min=1, value=2, max=3, fit=True, prior_type="gaussian", mu=0, sigma=1)
problem.parameters.append(name='My scale param', min=10, value=20, max=30, fit=True, prior_type="jeffreys")


Expand Down
18 changes: 11 additions & 7 deletions source/tutorial/customModels.rst
Original file line number Diff line number Diff line change
Expand Up @@ -144,13 +144,17 @@ First, we add our seven parameters (remember that Substrate Roughness is always

.. code-block:: Python

problem.parameters.append(name='Oxide thick', min=5.0, value=20.0, max=60.0, fit=True)
problem.parameters.append(name='Oxide Hydration', min=0, value=0.2, max=0.5, fit=True)
problem.parameters.append(name='Lipid APM', min=45.0, value=55.0, max=65.0, fit=True)
problem.parameters.append(name='Head Hydration', min=0, value=0.2, max=0.5, fit=True)
problem.parameters.append(name='Bilayer Hydration', min=0, value=0.1, max=0.2, fit=True)
problem.parameters.append(name='Bilayer Roughness', min=2.0, value=4.0, max=8.0, fit=True)
problem.parameters.append(name='Water Thickness', min=0, value=2.0, max=10.0, fit=True)
parameters = [['Oxide thick', 5.0, 20.0, 60.0, True],
['Oxide Hydration', 0, 0.2, 0.5, True],
['Lipid APM', 45.0, 55.0, 65.0, True],
['Head Hydration', 0, 0.2, 0.5, True],
['Bilayer Hydration', 0, 0.1, 0.2, True],
['Bilayer Roughness', 2.0, 4.0, 8.0, True],
['Water Thickness', 0, 2.0, 10.0, True]]

for param in pGroup:
problem.parameters.append(name=param[0], min=param[1], value=param[2], max=param[3], fit=param[4])



For this tutorial, we will show our custom model both in MATLAB and Python. You may run custom models
Expand Down
59 changes: 32 additions & 27 deletions source/tutorial/project.rst
Original file line number Diff line number Diff line change
Expand Up @@ -151,11 +151,12 @@ To avoid having to make a whole load of statements for large projects with many

.. code-block:: Python

pGroup = [RAT.models.Parameter(name='Layer thick', min=10, value=20, max=30, fit=True),
RAT.models.Parameter(name='Layer SLD', min=1e-6, value=3e-6, max=5e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=5, value=7, max=10, fit=True)]

problem.parameters.extend(pGroup)
pGroup = [['Layer thick', 10, 20, 30, True,],
['Layer SLD', 1e-6, 3e-6, 5e-6, True,],
['Layer rough', 5, 7, 10, True]]

for param in pGroup:
problem.parameters.append(name=param[0], min=param[1], value=param[2], max=param[3], fit=param[4])

The resulting parameters block looks like this:

Expand Down Expand Up @@ -185,8 +186,8 @@ The resulting parameters block looks like this:
problem.parameters.append(name='My new param', min=1, value=2, max=3)
problem.parameters.append(name='My other new param', min=10, value=20, max=30, fit=False)
pGroup = [RAT.models.Parameter(name='Layer thick', min=10, value=20, max=30, fit=True),
RAT.models.Parameter(name='Layer SLD', min=1e-6, value=3e-6, max=5e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=5, value=7, max=10, fit=True)]
RAT.models.Parameter(name='Layer SLD', min=1e-6, value=3e-6, max=5e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=5, value=7, max=10, fit=True)]

problem.parameters.extend(pGroup)
print(problem.parameters)
Expand Down Expand Up @@ -379,13 +380,15 @@ Start by making a new project, and adding the parameters we will need:

problem = RAT.Project(name='Layers Example')

params = [RAT.models.Parameter(name='Layer Thickness', min=10, value=20, max=30, fit=False),
RAT.models.Parameter(name='H SLD', min=-6e-6, value=-4e-6, max=-1e-6, fit=False),
RAT.models.Parameter(name='D SLD', min=5e-6, value=7e-6, max=9e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=3, value=5, max=7, fit=True),
RAT.models.Parameter(name='Layer hydr', min=0, value=10, max=20, fit=True)]
params = [['Layer Thickness', 10, 20, 30, False],
['H SLD', -6e-6, -4e-6, -1e-6, False],
['D SLD', 5e-6, 7e-6, 9e-6, True],
['Layer rough', 3, 5, 7, True],
['Layer hydr', 0, 10, 20, True]]

problem.parameters.extend(params)
for param in params:
problem.parameters.append(name=param[0], min=param[1], value=param[2], max=param[3], fit=param[4])


A layer is defined in terms of a name, thickness, SLD, roughness and (optional) hydration, along with details of which bulk phase is hydrating the layer.
The easiest way to define these is to group the parameters into cell arrays, and then add them to the project as a layers group:
Expand Down Expand Up @@ -441,10 +444,10 @@ Our two layers now appear in the ``layers`` block of the project:

problem = RAT.Project(name='Layers Example')
params = [RAT.models.Parameter(name='Layer Thickness', min=10, value=20, max=30, fit=False),
RAT.models.Parameter(name='H SLD', min=-6e-6, value=-4e-6, max=-1e-6, fit=False),
RAT.models.Parameter(name='D SLD', min=5e-6, value=7e-6, max=9e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=3, value=5, max=7, fit=True),
RAT.models.Parameter(name='Layer hydr', min=0, value=10, max=20, fit=True)]
RAT.models.Parameter(name='H SLD', min=-6e-6, value=-4e-6, max=-1e-6, fit=False),
RAT.models.Parameter(name='D SLD', min=5e-6, value=7e-6, max=9e-6, fit=True),
RAT.models.Parameter(name='Layer rough', min=3, value=5, max=7, fit=True),
RAT.models.Parameter(name='Layer hydr', min=0, value=10, max=20, fit=True)]
problem.parameters.extend(params)

problem.layers.append(name='H Layer', thickness='Layer Thickness', SLD='H SLD',
Expand Down Expand Up @@ -977,18 +980,20 @@ Then we need to define the parameters we need. We'll do this by making a paramet
.. code-block:: Python

parameters = [
RAT.models.Parameter(name='Tails Thickness', min=10, value=20, max=30, fit=True),
RAT.models.Parameter(name='Heads Thickness', min=3, value=11, max=16, fit=True),
RAT.models.Parameter(name='Tails Roughness', min=2, value=5, max=9, fit=True),
RAT.models.Parameter(name='Heads Roughness', min=2, value=5, max=9, fit=True),
RAT.models.Parameter(name='Deuterated Tails SLD', min=4e-6, value=6e-6, max=2e-5, fit=True),
RAT.models.Parameter(name='Hydrogenated Tails SLD', min=-0.6e-6, value=-0.4e-6, max=0, fit=True),
RAT.models.Parameter(name='Deuterated Heads SLD', min=1e-6, value=3e-6, max=8e-6, fit=True),
RAT.models.Parameter(name='Hydrogenated Heads SLD', min=0.1e-6, value=1.4e-6, max=3e-6, fit=True),
RAT.models.Parameter(name='Heads Hydration', min=0, value=0.3, max=0.5, fit=True)
['Tails Thickness', 10, 20, 30, True],
['Heads Thickness', 3, 11, 16, True],
['Tails Roughness', 2, 5, 9, True],
['Heads Roughness', 2, 5, 9, True],
['Deuterated Tails SLD', 4e-6, 6e-6, 2e-5, True],
['Hydrogenated Tails SLD', -0.6e-6, -0.4e-6, 0, True],
['Deuterated Heads SLD', 1e-6, 3e-6, 8e-6, True],
['Hydrogenated Heads SLD', 0.1e-6, 1.4e-6, 3e-6, True],
['Heads Hydration', 0, 0.3, 0.5, True]
]

problem.parameters.extend(parameters)
for param in params:
problem.parameters.append(name=param[0], min=param[1], value=param[2], max=param[3], fit=param[4])


Next we need to group the parameters into our layers. We need four layers in all, representing deuterated and hydrogenated versions of the heads and tails:

Expand Down