Skip to content

Repository files navigation

scientific-computing

Numerical methods in Fortran, with physical applications and reproducible results.

Antonio M. · 37 standalone programs · English technical manual

I collect my numerical implementations in one place: root finding, finite differences, quadrature, interpolation, series approximations, ordinary differential equations, statistics, and floating-point experiments. The application cases connect those calculations to function analysis, drag, heat transfer, and geometric optimization.

The repository keeps the explicit algorithms visible in Fortran.

Finite-difference error versus spacing Numerical and analytic heating trajectories

Start here

Install GNU Fortran, CMake 3.20 or later, and Python 3.9 or later. Use a shell that can find gfortran, cmake, and python. On systems that call Python python3, substitute that command in the examples.

python tools/sc.py build
python tools/sc.py run interpolation
python tools/sc.py run ode_cases --args cooling
python tools/sc.py test

The build creates build/bin/. The runner supplies a small example input and writes results to build/runs/<program>/; it never opens a plot window. python tools/sc.py list lists every executable.

To answer prompts yourself, run python tools/sc.py run interpolation --interactive. To supply a prepared answer file, use --input path/to/answers.txt. Some file-input examples read data.txt; edit the matching fixture under examples/inputs/ before running, or execute the binary directly from your own working directory.

Explore the work

Numerical methods Applications
Root finding Function analysis
Differentiation Geometric optimization
Integration Linear and quadratic drag
Interpolation Newton heating
Series approximations Differential-equation cases
ODE integration Manual shooting
Statistics Fortran basics
Floating-point experiments Executable catalogue

Several programs contain substantial calculations of their own. The function catalogue keeps its ten approximations and integral comparisons together; the case-study program exposes seven ODE configurations without duplicating its stages. Smaller programs remain available as focused implementations, not separate products.

Technical manual

Open the manual (PDF)

The accompanying PDF manual provides equations, input contracts, numerical reference cases, execution examples, and plots.

Scope and verification

The local GNU Fortran 14.2.0 test run passes 88 tests, including a smoke run for every executable, analytic-reference checks, and invalid-input cases. A separate signaling-NaN build also passes the suite. These checks cover the included cases; they do not certify every possible input or every commented alternative model.

The function scanner and multiplicity classifier use finite-grid heuristics. The shooting case integrates a user-selected initial slope; it does not solve a boundary condition automatically. Series require appropriate domains, and high-order finite differences can amplify cancellation. The manual states those limits directly.

The codebase provides explicit implementations of summations, stencils, interpolation products, grid scans, and Euler/RK stages with structured error checking and validation tests.

Layout

numerics/       Numerical implementations, grouped by method
applications/   Problems that use those methods
basics/         Small Fortran input/output and array examples
support/        Minimal shared directory handling (Sodium)
examples/       Executable input fixtures
tests/          Regression and input-validation tests
tools/          Build/run helper and figure generation
docs/           LaTeX manual, figures, data, and validation record

Sodium names a small support layer, not an independent framework. Each program still owns its numerical routines; this release does not promise a stable library API.

Authorship and licensing

Antonio M. authors and maintains this collection and the technical manual. LICENSE covers the software and documentation in this repository. See NOTICE for authorship context.

Releases

Packages

Contributors

Languages