Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScatterNet.jl

Layout

src/
  ScatterNet.jl          thin aggregator (includes Interfaces + the two groups)
  Interfaces.jl          RadiiSource / FormFactorSource markers (shared)
  Molecule/
    Molecule.jl          module Molecule
    Cache.jl             Lazy{T} + force
    AtomicRadii.jl       ion parsing + table (loaded once) + fallback chain
    Molecules.jl         create + r/theta/phi/coords/radii/vols/elms/name
  Scattering/
    Scattering.jl        module Scattering
    SphFuncs.jl          sphHarm, sphBess          (SphericalHarmonics.jl, Bessels.jl)
    FormFactorXrayDB.jl  compute_form_factors      (xraydb via PythonCall)
py/FormFact_py.py        Python form-factor tiers
data/atomic_radii.sqlite3
test/                    test suites + Aqua/JET

Modules

src/ScatterNet.jl includes Interfaces then two grouped submodules, each its own folder with a parent module … end that includes its files in dependency order: Molecule (Cache, AtomicRadii, Molecules) and Scattering (SphFuncs, FormFactorXrayDB). Reach a leaf as ScatterNet.Molecule.AtomicRadii etc. export lists the public surface; _-prefixed names are internal. Swappable backends (RadiiSource, FormFactorSource) are abstract types + a documented method contract, in place of OCaml functors.

Run

julia --project=. -e 'using Pkg; Pkg.instantiate()'
julia --project=. -e 'using Pkg; Pkg.test()'      # xraydb tests self-skip without the CondaPkg env

PythonCall/CondaPkg build the xraydb+numpy env on first pyimport; force it with julia --project=. -e 'using CondaPkg; CondaPkg.resolve()'.

About

Bayesian small angle scattering analysis

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages