Faddeev method framework for quantum three-body bound state and scattering calculations in nuclear physics using Laguerre basis functions and realistic nuclear potentials.
A Julia-based nuclear physics framework implementing the Faddeev method for three-body quantum mechanical bound state and scattering calculations. Specializes in solving nuclear three-body problems (like ³H tritium) using sophisticated numerical techniques including Laguerre basis functions, multi-channel coupling, and nuclear potential models.
When working with this codebase, you are helping develop and run sophisticated nuclear physics calculations. Follow these guidelines:
**Automated Setup (Recommended):**
```bash
./setup.sh
```
This script will automatically:
**Manual Setup (Alternative):**
```bash
julia setup.jl
cd NNpot
make clean && make
```
**Bound State Calculations:**
```bash
cd swift
julia swift_3H.jl
```
**Memory-Optimized Runs:**
Use `swift_3H_optimized.ipynb` for reduced memory calculations (~1-2 GB instead of 27 GB).
**Interactive Development:**
Launch Jupyter notebooks (*.ipynb files) for exploration and debugging.
Run tests to validate the implementation:
```bash
julia NNpot/test.jl
julia NNpot/test_comprehensive.jl
julia NNpot/test_channel_physics.jl
```
**Module Structure:**
**Key Physics Concepts:**
**Bound States:**
1. Generate channels via `α3b()` based on conservation laws
2. Initialize mesh with `initialmesh()` for hyperspherical grids
3. Construct Hamiltonian: H = T + V + V*Rxy (optionally include UIX three-body forces)
4. Solve eigenvalue problem using either:
- **Direct method**: `ThreeBody_Bound()` solves `eigen(H, B)`
- **Iterative method**: `malfiet_tjon_solve()` uses secant iteration
**Scattering:**
1. Compute initial state vector with `compute_initial_state_vector()` (e.g., deuteron + nucleon)
2. Assemble scattering matrix with `compute_scattering_matrix()`
3. Compute source term with `compute_VRxy_phi()`
4. Solve linear system with `solve_scattering_equation()` using LU or GMRES methods
**Fortran Integration:**
**Faddeev Normalization (Critical):**
Use **3⟨Ψ|ψ₃⟩ = 1** normalization scheme for truncated model spaces:
**Recommended Mesh Parameters for j2bmax=2.0:**
**Adding New Potentials:**
1. Add Fortran implementation to `NNpot/` directory
2. Update makefile to include new source files
3. Add Julia wrapper function in `nuclear_potentials.jl`
4. Update `potential_type_to_lpot()` mapping
**Working with Three-Body Forces:**
```julia
X12 = UIX.X12_matrix(α, grid)
H = T + V + V_Rxy + X12
```
**Scattering with Complex Scaling:**
```julia
E = 10.0 # Energy (MeV)
z1z2 = 1.0 # Charge product
θ = 0.0 # Complex scaling angle (radians)
φ = compute_initial_state_vector(grid, α, φ_d_matrix, E, z1z2, θ=θ)
V_scaled = V_matrix_optimized_scaled(α, grid, potname, θ_deg=10.0)
T_scaled = T_matrix_optimized(α, grid, θ_deg=10.0)
```
**Library Loading Issues:**
```julia
list_symbols(libpot)
find_symbol(libpot, "function_name")
```
**Convergence Issues:**
**Performance Optimization:**
**Wave Function Analysis:**
The project requires:
**Core Implementation:**
**Modules:**
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/swift-three-body-nuclear-physics-solver/raw