Skip to content
MC-kitPublic
forked from rorni/mckit

About

Tools to work with MCNP models and results

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

 
 

Latest commit

 

History

2,408 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCKIT: MCNP model and results processing utilities

Maintained License PyPI - Python Version PyPI Documentation Status

The mckit package provides a programming framework and command line tools to manipulate complex MCNP models. When a model is rather complex and its description occupies thousands of text lines it becomes hard to modify it and integrate several model manually. The package automates integration process.

More details in documentation.

Usage: mckit [OPTIONS] COMMAND [ARGS]...

  Tools to process MCNP models and results

Options:
  --override / --no-override
  --version                   Show the version and exit.
  -v, --verbose               Log debugging info to stderr.  [default: False]
  -q, --quiet                 Suppress info to stderr.  [default: False]
  --logfile / --no-logfile    Log to file.  [default: True]
  --profile_mem               Profile peak memory use.  [default: False]
  --help                      Show this message and exit.

Commands:
  check      Read MCNP model(s) and show statistics and clashes.
  compose    Merge universes and envelopes into MCNP model using merge...
  concat     Concat text files.
  decompose  Separate an MCNP model to envelopes and filling universes
  split      Splits MCNP model to text portions (opposite to concat)
  transform  Transform MCNP model(s) with one of specified transformation.

The library allows subtraction and merging models, renaming objects (cells, surfaces, compositions, universes), simplification of cell expressions (removing redundant surfaces), homogenization, computation of cell volumes and material masses, and more.

LOG.info("Loading c-model envelopes")
envelopes = load_model(str(CMODEL_ROOT / "c-model.universes/envelopes.i"))

cells_to_fill = [11, 14, 75]
cells_to_fill_indexes = [c - 1 for c in cells_to_fill]

LOG.info("Attaching bounding boxes to c-model envelopes %s", cells_to_fill)
attach_bounding_boxes(
    [envelopes[i] for i in cells_to_fill_indexes], tolerance=5.0, chunk_size=1
)
LOG.info("Backing up original envelopes")
envelopes_original = envelopes.copy()

antenna_envelop.rename(start_cell=200000, start_surf=200000)

LOG.info("Subtracting antenna envelop from c-model envelopes %s", cells_to_fill)
envelopes = subtract_model_from_model(
    envelopes, antenna_envelop, cells_filter=lambda c: c in cells_to_fill
)
LOG.info("Adding antenna envelop to c-model envelopes")
envelopes.add_cells(antenna_envelop, name_rule="clash")
envelopes_path = "envelopes+antenna-envelop.i"
envelopes.save(envelopes_path)
LOG.info("The model of HFSR in envelopes is saved to %s", envelopes_path)

Installing from pypi:

pip install mckit
# or
uv pip install mckit

Installing from github.com:

pip install git+https://github.com/MC-kit/mckit.git
# or
uv pip install git+https://github.com/MC-kit/mckit.git

Some specific: in development environment we use uv, just, ruff.

To setup development environment, run:

just install | reinstall

To build documentation, run:

just docs        # - for local online docs rendering, while editing
just docs-build  # - to build documentation

To release, run:

just bump [major|minor|patch]  # - in `devel` branch

Then merge devel to master (via Pull Request) and if all the checks are passed create Release. Manually.

This software follows Semantic Versioning

About

Tools to work with MCNP models and results

Topics

Resources

Contributing

Stars

10 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages