PieterTack / polycap

Polycapillary X-ray raytracing
GNU General Public License v3.0
3 stars 3 forks source link

non-vacuum support #42

Open PieterTack opened 5 years ago

PieterTack commented 5 years ago

Change calculation to allow for other-than-vacuum media inside the optic.

This should include the following things:

Concerns:

tschoonj commented 5 years ago

Good idea.

Perhaps we should also introduce something like polycap_composition:

typedef struct _polycap_composition              polycap_composition;
struct _polycap_composition {
    unsigned int nelem;
    int iz[];
    double wi[];
    double density;
};

This would simplify polycap_description_new to:

polycap_description* polycap_description_new(
    polycap_profile *profile,
    double sig_rough,
    int64_t n_cap,
    polycap_composition *wall_composition,
        polycap_composition *atmosphere_composition, /* NULL is acceptable here */
    polycap_error **error);

I would include the medium between source and optic in the calculations as it cannot be appropriately taken into account afterwards