/*
TODO: Add 2D model
*/
#if !defined(lamellarPS_h)
#define lamellarPS_h
/** Structure definition for concentrated lamellar form factor parameters
* [PYTHONCLASS] = LamellarPSModel
* [DISP_PARAMS] = delta, spacing
[DESCRIPTION] = [Concentrated Lamellar Form Factor] Calculates the scattered
intensity from a lyotropic lamellar phase.
The intensity (form factor and structure
factor)calculated is for lamellae of
uniform scattering length density that
are randomly distributed in solution
(a powder average). The lamellae thickness
is polydisperse. The model can also
be applied to large, multi-lamellar vesicles.
No resolution smeared version is included
in the structure factor of this model.
*Parameters: spacing = repeat spacing,
delta = bilayer thickness,
sld_bi = SLD_bilayer
sld_sol = SLD_solvent
n_plate = # of Lamellar plates
caille = Caille parameter (<0.8 or <1)
background = incoherent bgd
scale = scale factor
[FIXED]= delta.width; spacing.width
[ORIENTATION_PARAMS]=
**/
typedef struct {
/// Scale factor
// [DEFAULT]=scale=1.0
double scale;
/// repeat spacing of the lamellar [A]
// [DEFAULT]=spacing=400 [A]
double spacing;
/// bilayer thicknes [A]
// [DEFAULT]=delta=30 [A]
double delta;
/// SLD of bilayer [1/A^(2)]
// [DEFAULT]=sld_bi=6.3e-6 [1/A^(2)]
double sld_bi;
/// SLD of solvent [1/A^(2)]
// [DEFAULT]=sld_sol=1.0e-6 [1/A^(2)]
double sld_sol;
/// Number of lamellar plates
// [DEFAULT]=n_plates=20
double n_plates;
/// caille parameters
// [DEFAULT]=caille=0.1
double caille;
/// Incoherent Background [1/cm]
// [DEFAULT]=background=0.0 [1/cm]
double background;
} LamellarPSParameters;
/// kernel
double LamellarPS_kernel(double dp[], double q);
/// 1D scattering function
double lamellarPS_analytical_1D(LamellarPSParameters *pars, double q);
/// 2D scattering function
double lamellarPS_analytical_2D(LamellarPSParameters *pars, double q, double phi);
double lamellarPS_analytical_2DXY(LamellarPSParameters *pars, double qx, double qy);
#endif