Structure Factor Module

This module provides functions for calculating various types of structure factors. Structure factors quantify the scattering intensity of a material as a function of the scattering vector magnitude (q), revealing information about the spatial arrangement of particles or microstructural features within the material.

Structure factors are used in diverse areas, including the study of colloidal suspensions, granular materials, polycrystalline metals, and more. They help researchers characterize the structure, composition, and properties of materials at the microscopic and nanoscale levels.

Functions: - hard_sphere: Returns the functor instance which calculates the structure factor for a system of hard spheres. - steaky_hard_sphere: Returns the functor instance which calculates the structure factor for a system of steaky hard spheres. - polycrystal: Returns the functor instance which calculates the structure factor for a polycrystalline material. - polycr_bkgr: Returns the functor instance which calculates polycrystal background.

escape.scattering.strfac.hard_sphere(name, q, radius, volfrac)

Returns the functor instance which calculates the structure factor for a system of hard spheres.

The hard sphere structure factor, denoted as S(q), quantifies the deviation of the scattering intensity of a system of hard spheres from that of a non-interacting reference system. It is a crucial quantity in the study of colloidal and granular materials and is used in various areas of condensed matter physics.

namestr

A descriptive name for the structure factor.

qfunctor_obj

A functor that calculates q values. Typically, q is a function of the scattering angle and is expressed as q = 4 * π * sin(θ) / λ, where θ is the scattering angle and λ is the wavelength of the incident radiation.

radiusfloat or parameter_obj

The radius of the hard spheres.

volfracfloat or parameter_obj

The volume fraction of the hard spheres in the system. It represents the ratio of the total volume occupied by the spheres to the total volume of the system.

resfunctor_obj

A functor that computes the structure factor S(q) for the given parameters.

The hard sphere structure factor S(q) is calculated using the Percus-Yevick approximation for hard spheres.

escape.scattering.strfac.polycr_bkgr(name, q, period, disorder, numunits)

Create a functor which calculates polycrystal background.

namestr

Name of the functor.

qfunctor_obj

A functor that calculates q values. Q is a function of the scattering angle and is expressed as q = 4 * π * sin(θ) / λ, where θ is the scattering angle and λ is the wavelength of the incident radiation.

periodparameter_obj or float

The characteristic periodicity of the polycrystal. This can be either a constant value or a function that calculates the period.

disorderparameter_obj or float

The degree of disorder within the polycrystal. It represents the extent of randomness or defects in the microstructure and can be a constant value or a functor.

numunitsint_setting_obj or int

The number of crystallographic units within the polycrystal. This parameter provides information about the size and distribution of grains within the material.

resfunctor_obj

Functor for the polycrystal background.

escape.scattering.strfac.polycrystal(name, q, period, disorder, numunits, bckgr=True)

Returns the functor instance which calculates the structure factor for a polycrystalline material.

The polycrystal structure factor, denoted as S(q), quantifies the scattering intensity arising from the crystalline and disorderly regions within a polycrystalline material. It is a valuable tool for characterizing the microstructure and properties of polycrystals, helping to distinguish ordered crystallographic regions from disordered grain boundaries and defects.

namestr

A descriptive name for the structure factor.

qvariable_obj or functor_obj

A functor that calculates q values. Q is a function of the scattering angle and is expressed as q = 4 * π * sin(θ) / λ, where θ is the scattering angle and λ is the wavelength of the incident radiation.

periodfloat or parameter_obj

The characteristic periodicity of the polycrystal. This can be either a constant value or a function that calculates the period.

disorderfloat or parameter_obj

The degree of disorder within the polycrystal. It represents the extent of randomness or defects in the microstructure and can be a constant value or a functor.

numunitsint or int_setting_obj

The number of crystallographic units within the polycrystal. This parameter provides information about the size and distribution of grains within the material.

bckgrbool

A boolean value indicating whether to return polycrystal structure factor as it is, or to exclude background from it.

resfunctor_obj

A functor that computes the paracrystal structure factor S(q) for the given parameters.

escape.scattering.strfac.steaky_hard_sphere(name, q, radius, volfrac, steakyns)

Returns the functor instance which calculates the structure factor for a system of steaky hard spheres.

The steaky hard sphere structure factor, denoted as S(q), quantifies the deviation of the scattering intensity of a system of steaky hard spheres from that of a non-interacting reference system. Steaky hard spheres are a model for colloidal particles with an additional “stickiness” or attraction between them, making them interact differently from traditional hard spheres. This structure factor is used in the study of complex colloidal systems.

namestr

A descriptive name for the structure factor.

qvariable_obj or functor_obj

A functor that returns q values. Typically, q is a function of the scattering angle and is expressed as q = 4 * π * sin(θ) / λ, where θ is the scattering angle and λ is the wavelength of the incident radiation.

radiusfloat or parameter_obj

The radius of the steaky hard spheres. This can be either a constant value or a parameter object.

volfracfloat or parameter_obj

The volume fraction of the steaky hard spheres in the system. It represents the ratio of the total volume occupied by the spheres to the total volume of the system.

steakynsfloat or parameter_obj

The steaky parameter, which quantifies the strength of the stickiness or attraction between the spheres. It is a dimensionless parameter that influences the interparticle interactions.

resfunctor_obj

A function that computes the structure factor S(q) for the given parameters.

The steaky hard sphere structure factor S(q) is calculated using a modified Percus-Yevick approximation to account for the additional interactions between the particles.