#ifndef sasview_core_multi_shell_h #define sasview_core_multi_shell_h /* sasview file: core_multi_shell.c qtisas implementation: sasview-core_multi_shell.h sasview source: http://marketplace.sasview.org/models/19/ Authorship and Verification (sasview) **Author:** NIST IGOR/DANSE **Date:** pre 2010 **Last Modified by:** Paul Kienzle **Date:** September 12, 2016 **Last Reviewed by:** Paul Kienzle **Date:** September 12, 2016 qtisas implementation: Vitaliy Pipich, March 17, 2021 */ #include "sasview.h" #include "sasview-sas_3j1x_x.h" static double sasview_core_multi_shell_f_constant(double q, double r, double sld) { const double bes = sas_3j1x_x(q * r); const double vol = M_4PI_3 * cube(r); return sld * vol * bes; } static double sasview_core_multi_shell_form_volume(double core_radius, double fp_n, double thickness[]) { double r = core_radius; int n = (int)(fp_n+0.5); for (int i=0; i < n; i++) { r += thickness[i]; } return M_4PI_3 * cube(r); } static double sasview_core_multi_shell_Iq(double q, double core_sld, double core_radius, double solvent_sld, double fp_n, double sld[], double thickness[]) { const int n = (int)(fp_n+0.5); double f, r, last_sld; r = core_radius; last_sld = core_sld; f = 0.; for (int i=0; i