Version 63 (modified by pkienzle, 9 years ago) (diff)

Add a model here when you are working on it. Mark it as converted when it is tested and pushed.

The err columns are the result of running multi_compare.sh, which generates random parameters for comparison against sasview. double should be at most 5e-14 relative error, single should be 5e-5.

./multi_compare.sh MODEL 200 1d200 mono double
./multi_compare.sh MODEL 200 1d200 mono single

Some models still have issues when run using single precision (lamellarPC for example).

We are not dealing with magnetism at this point as it requires some work on the wrapper functionality. Thus the *Magnetic* column below is for reference as to which models need attention. The *SESANS* column should be used to indicate if the model is a priority (1 highest, 4 lowest).

SasView namesasmodels name P(Q) S(Q) Multiply Multiplicity Magnetic SESANS Assigned Converted double err single err double 2D single 2D
HayterMSAStructure HayterMSAsq NYNNN1RKHY NaNs? FAIL - -
BarBellModel barbell YNNNN3AJJY good good FAIL FAIL
BCCrystalModel bcc_paracrystal YNNNN3AJJY good FAIL 9e-14 2e-2
BinaryHSModel binary_hard_sphere YYNNN1PDBN - -
BroadPeakModel broad_peak YNNNN4PDBY good good - -
CappedCylinderModel capped_cylinder YNNNN3HP Y good good 2e-11 3e-3
CoreShellCylinderModelcore_shell_cylinderYNYNN3HP Y good good 9e-14 4e-4
CylinderModel cylinder YNYNY1HP Y good good 2e-13 1e-4
DABModel dab YNNNN1DM Y good good - -
EllipsoidModel ellipsoid YNYNN1HP Y good* good 3e-14 1e-4
FCCrystalModel fcc_paracrystal YNNNN3AJJY good FAIL FAIL FAIL
PeakGaussModel gaussian_peak 4AJJN good 1e-3 - -
Guinier guinier YNNNN1JRKY good good - -
HardsphereStructure hardsphere NYNNN1RKHY good FAIL - -
HollowCylinderModel hollow_cylinder YNNNN2JRKY good 2e-3 4e-13 2e-3
LamellarModel lamellar YNNNN2PAKY good good - -
LamellarPSModel lamellarCaille YNNNN3RKHY good 5e-2 - -
LamellarPSHGModel lamellarCailleHG YNNNN3RKHY 3e-12 5e-3 - -
LamellarFFHGModel lamellarFFHG YNNNN3RKHY good good - -
LamellarPCrystallModel lamellarPC YNNNN3RKHY good FAIL - -
Lorentz lorentz YNNNN1JRKY good good - -
ParallelepipedModel parallelepiped YNYNY2MAGY good good 2e-13 8e-5
PearlNecklaceModel pearl_necklace 3JRKN fail fail - -
!AbsolutePower_Law power_law 3SMKN good good - -
SphereModel sphere YNYNY1HP Y good* good - -
StickyHSStructure stickyhardsphere NYNNN1RKHY good FAIL - -
TeubnerStrey teubner_strey 1PAKY good* good - -
TriaxialEllipsoidModeltriaxial_ellipsoid YNYNY3HP Y good* good good good
FuzzySphereModel 2TRNN
RaspBerryModel 2AJJ
CoreShellModel Y2MD N
CoreMultiShellModel Y3
Core2ndMomentModel 3SMKN
MultiShellModel 3PAK
OnionExpShellModel 3
VesicleModel 2PDBN
SphericalSLDModel 3
LinearPearlsModel 3
EllipticalCylinderModel 3MD N
FlexibleCylinderModel 2 N
FlexCylEllipXModel 3
CoreShellBicelleModel 2
StackedDisksModel 2TRNN
PringleModel 3AJJ
CoreShellEllipsoidModel 3
CoreShellEllipsoidXTModel 3
SCCrystalModel 3
CSParallelepipedModel 3MAGN
RectangularPrismModel 2MAGN
RectangularHollowPrismModel 3MAGN
RectangularHollowPrismInfThinWallsModel 3MAGN
Debye 1SMKN
CorrLength 3
FractalModel 1PDB
MassFractalModel 1
SurfaceFractalModel 1
MassSurfaceFractal 1
FractalCoreShell 3
GaussLorentzGel 2
BEPolyelectrolyte 3
GuinierPorod 2MD N
PorodModel 3MD N
PeakLorentzModel 4AJJN
Poly_GaussCoil 2SMKN
PolyExclVolume 3
RPA10Model 3PAK
TwoLorentzian 4
TwoPowerLaw 4
UnifiedPowerRg 4
LineModel 4
GelFitModel 1
StarPolymer 2
ReflectivityModel 4
ReflectivityIIModel 4
SquareWellStructure 1PDB
testmodel 3
testmodel_2 3
sum_p1_p2 3
sum_Ap1_1_Ap2 3
polynomial5 3
sph_bessel_jn 3

* using taylor expansion near 0 for fq = 3 (sin(qr)/qr - cos(qr))/qr2; using quad precision as a cross check, this is more accurate than computing the direct expression for qr < 0.1 in double precision, and so the values will differ from those in sasview. It is much more accurate in single precision. This affects many models, including sphere and ellipsoid models. The cylinder models are using J1(qr)/qr, which has its own numerical expansion and does not suffer from this problem. Should probably settle on one or the other and move it into the library. So even though the double precision values for sphere, ellipsoid and triaxial ellipsoid differ by more than 5e-14, they are still marked good. Similarly, the Teubner-Strey model checks out against the quad precision version and so is marked good.

1GList of standard parameters (name = meaning):

  • radius = radius
  • sld = scattering length density of particle
  • solvent_sld = scattering length density of matrix
  • cor_length = correlation length
  • exp = exponent (example: porod_exp)
  • peak_pos = q_peak or q0 etc
  • theta, phi, psi