Skip to main content

CLI utility to edit and run a ddscat.par file for DDSCAT

Project description

ddscatcli

DOI PyPI

This script is a command-line utility to edit and run a ddscat.par file for DDSCAT in a reproducible and automated way.

It allows you to:

  • Modify parameters inside a single ddscat.par configuration file (shape, solver, FFT method, dielectric files, wavelength, etc.).
  • Run DDSCAT automatically — serial, MPI, or OpenMP.
  • Create timestamped backups of the original ddscat.par file.
  • Uses environment variables for configuration (no code editing).

Configuration

ddscatcli resolves ddscat.par in this order:

  1. $DDSCAT_PAR (absolute path recommended; relative paths are interpreted relative to your current working directory)
  2. ddscat.par (current working directory)

ddscatcli resolves the DDSCAT executable in this order:

  1. $DDSCAT_EXE (absolute path recommended; relative paths are interpreted relative to your current working directory)
  2. ddscat (current working directory)
  3. ddscat found on your PATH

Example:

export DDSCAT_PAR=/abs/path/to/ddscat.par
export DDSCAT_EXE=/abs/path/to/ddscat

Postprocessing (ddpostprocess)

ddscatcli can optionally run ddpostprocess (from DDSCAT) after a simulation, or independently using -post flag.

Environment variables

  • DDPOST_EXE: path to the ddpostprocess executable (absolute recommended)
  • DDPOST_PAR: path to ddpostprocess.par (absolute recommended)

If not set, ddscatcli looks in the current working directory for:

  • ddpostprocess
  • ddpostprocess.par

Installation

Install from PyPI:

pip install ddscatcli

This installs the ddscatcli command globally. If you prefer to keep it isolated in a virtual environment:

python -m venv .venv
source .venv/bin/activate   # on Linux/macOS
# .venv\Scripts\activate    # on Windows

pip install ddscatcli

Requirements

  • Python 3.8>=
  • Standard library only

Usage

  1. Get help and options:

    ddscatcli -h
    
  2. List available shapes:

    ddscatcli -CSHAPE -h
    
  3. Run modes:

    • -dry-run → preview the edits only (no file modification).
    • (no flag) → apply edits to ddscat.par.
    • -run → apply edits and automatically run DDSCAT.
  4. Parallel options:

    • -omp-threads N → set the number of OpenMP threads.
    • -mpi [launcher] -np N → run DDSCAT with MPI (e.g. mpirun, mpiexec, srun).

Examples

Preview edits without modifying:

ddscatcli -CSHAPE ANIRCTNGL -dry-run

Change the shape and run immediately:

ddscatcli -CSHAPE ELLIPSOID -SHPAR "16 8 4" -run

Set OpenMP threads:

ddscatcli -omp-threads 16 -run

You can repeat -DIEL once per material:

ddscatcli -NCOMP 3 -DIEL diel1.txt -DIEL diel2.txt -DIEL diel3.txt

Or provide them in a single flag:

ddscatcli -NCOMP 3 --diels diel1.txt diel2.txt diel3.txt

Note: if -NCOMP is provided, the number of dielectric entries must match NCOMP exactly.


Use from Python

ddscatcli exposes a run function.

import os
import ddscatcli

os.environ["DDSCAT_PAR"] = "/abs/path/to/ddscat.par"
os.environ["DDSCAT_EXE"] = "/abs/path/to/ddscat"

ddscatcli.run(["-dry-run", "-CSHAPE", "ELLIPSOID"])

Backups

Every modification automatically creates a timestamped backup:

ddscat.par.bak.YYYYMMDD-HHMMSS

Notes

  • Each parameter is matched using its identifying keyword in the ddscat.par file.
  • Supports dielectric and shape overrides via -DIEL, -NCOMP, -SHPAR, etc.
  • DDSCAT must be compiled and installed separately — this tool just wraps it.

License

This project is licensed under the GNU General Public License v3.0 (GPLv3). You are free to use, modify, and share it under the same license.


Citation

If you use ddscatcli, please cite:

Clément Argentin, ddscatcli (2025).
DOI: 10.5281/zenodo.17493074

You can click the “Cite this repository” button on the right-hand side of the GitHub page for citation formats (BibTeX, APA, etc.).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ddscatcli-1.0.3.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ddscatcli-1.0.3-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file ddscatcli-1.0.3.tar.gz.

File metadata

  • Download URL: ddscatcli-1.0.3.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for ddscatcli-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b48919bcc8cb3f3075ae9d8441f09b1e8998dc4104d901e4c643dbe32e324851
MD5 920e5e47c4b5c403e41ce08fe573d86b
BLAKE2b-256 f6622a1a55c80d543fbd442273f9a0ef92b61d02878871ec3d7a600663aeffd4

See more details on using hashes here.

File details

Details for the file ddscatcli-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: ddscatcli-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for ddscatcli-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9f765ce02a9deaf78862b350596a84198b4459785a6fb913d92218261c9baf16
MD5 6dabf838d57969d9e81bde37af058854
BLAKE2b-256 86097f04180b1ddac0c2c56274b1bdba0e5b032a67e8253502ef38926a2158f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page