This site is version 0.0.1. Most of the code on this site is drafted by an agent and needs review. I apologize for the AI-speak, we are working on rewriting it!
viv-lang.org

Notebooks · lib/skyrme/spherical

Skyrme Hartree-Fock of any spherical closed-shell nucleus

The solver of lib/skyrme/skyrme for any nucleus whose protons and neutrons each fill whole shells: oxygen-16 through lead-208, with the forces SLy4, SLy5, SIII and SkM*.

from skyrme.spherical import SLY5, nucleus_z, nucleus_n, solve

res = solve(0.1, 200, SLY5, nucleus_z("208Pb"), nucleus_n("208Pb"), 0.5, 1.0e-9, 300)
show res.e_per_a       # E/A, MeV

Two things change from lib/skyrme/skyrme, which solves oxygen-16 only.

The occupied orbitals are chosen by energy. Each iteration diagonalizes every block up to , and the protons (or neutrons) go into the lowest orbitals across all blocks, to an orbital, until all (or ) are placed. A nucleus whose last orbital would be only partly filled is open-shell and is refused: a spherical solution with a partly filled shell needs pairing or a filling approximation, which this solver does not have. Inside a block the -th orbital is the -th eigenvalue, so calcium-40's is the second state of the block.

The force and the center-of-mass factor are arguments. A force is a Force record (SLY4, SLY5, SIII and SKMS are defined below), with a flag for the terms of and , which SLy5 and SIII keep and SLy4 and SkM* drop. The kinetic term carries for every force, as each was fitted.

For oxygen-16 with SLy5 the arithmetic is lib/skyrme/skyrme's, operation for operation, and gives its bits (the test at the end).

Used with import skyrme.spherical.

Look inside this program

  • Atlas

    The program’s map: every function and which calls which.

  • There’s no recorded run of this program yet.

This program declares a record type (Force), and records run only in compiled C for now, so the Run buttons here are off. Open it in the workbench and use its C tab to compile it.

Shift+Enter in a cell runs it and moves to the next. Running a cell runs every cell above it too, as one program.

[1]lines 36–692