/**
* (c) 2013 / Andrew J Jackson / andrew.jackson@esss.se
*
* Model for "pringles" particle from K. Edler @ Bath University
*
*/
#if !defined(pringles_h)
#define pringles_h
#include "parameters.hh"
//[PYTHONCLASS] = PringlesModel
//[DISP_PARAMS] = radius,thickness,alpha,beta,
//[DESCRIPTION] = Pringles model for K Edler. Represents a disc that is bent in two directions.
//[FIXED]= radius.width; thickness.width; alpha.width; beta.width
//[ORIENTATION_PARAMS]=
class PringlesModel {
public:
//[DEFAULT]=scale=1.0
Parameter scale;
//[DEFAULT]=radius=60.0 [A]
Parameter radius;
//[DEFAULT]=thickness=10.00 [A]
Parameter thickness;
//[DEFAULT]=alpha=0.001 [rad]
Parameter alpha;
//[DEFAULT]=beta=0.02 [rad]
Parameter beta;
//[DEFAULT]=sld_pringle=1.0e-6 [A^(-2)]
Parameter sld_pringle;
//[DEFAULT]=sld_solvent=6.35e-6 [A^(-2)]
Parameter sld_solvent;
//[DEFAULT]=background=0.0 [1/cm]
Parameter background;
//Constructor
PringlesModel();
// Operators to get I(Q)
double operator()(double q);
double operator()(double qx, double qy);
double calculate_ER();
double calculate_VR();
double evaluate_rphi(double q, double phi);
};
static double pringle_form(double dp[], double q);
static double pringle_kernel(double dp[], double q, double phi);
static double pringleC(double dp[], double q, double n, double phi);
static double pringleS(double dp[], double q, double n, double phi);
#endif