{"id":19705814,"url":"https://github.com/llnl/paradis","last_synced_at":"2025-05-08T20:56:45.277Z","repository":{"id":190034887,"uuid":"681808587","full_name":"LLNL/ParaDiS","owner":"LLNL","description":"ParaDiS (Parallel Dislocation Simulator) is a massively parallel Discrete Dislocation Dynamics simulation tool to simulate motion and interaction of large ensembles of dislocations","archived":false,"fork":false,"pushed_at":"2024-10-21T20:08:16.000Z","size":28432,"stargazers_count":51,"open_issues_count":9,"forks_count":15,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-12T05:03:33.683Z","etag":null,"topics":["application","simulation"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-22T19:56:09.000Z","updated_at":"2025-03-08T12:22:55.000Z","dependencies_parsed_at":"2024-11-11T21:41:38.397Z","dependency_job_id":null,"html_url":"https://github.com/LLNL/ParaDiS","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.25,"last_synced_commit":"98332cd11d079176bb060375910fda93fd43039c"},"previous_names":["llnl/paradis"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FParaDiS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FParaDiS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FParaDiS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FParaDiS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/ParaDiS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253149409,"owners_count":21861718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","simulation"],"created_at":"2024-11-11T21:30:36.200Z","updated_at":"2025-05-08T20:56:45.228Z","avatar_url":"https://github.com/LLNL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# ParaDiS\n\n**IMPORTANT: ParaDiS development is no longer supported as the code is being replaced by our new open-source project [OpenDiS](https://github.com/OpenDiS/OpenDiS), which includes the high-performance [ExaDiS](https://github.com/LLNL/exadis) core library that runs on GPU. More information about OpenDiS is available at the [OpenDiS documentation](https://opendis.github.io/OpenDiS).**\n\nParaDiS Public Release Version 4.0\n\nParaDiS (Parallel Dislocation Simulator) is a simulation tool that performs direct numerical simulation of dislocation ensembles, the carriers of plasticity, to predict the strength in crystalline materials from the fundamental physics of defect motion, evolution, and interaction.\n\nThe code has been successfully deployed on high performance computing architectures and used to study the origins of strength and strain hardening for cubic crystals, the strength of micro-pillars, and irradiated materials at LLNL. The ParaDiS code has been successfully deployed on more than one hundred thousand CPU's with over ten million active degrees of freedom.\n\n## Installation\n\n### Quick start\n\nThe public distribution of ParaDiS is built using conventional make files. \n\n1. Select a target system (e.g. `SYS=gcc` at line 52) and compilation mode (`MODE=SERIAL` or `MODE=PARALLEL` at lines 66-67) in file `makefile.setup`\n2. Compile the code from the root of the distribution using the `make` command\n3. Successful compilation will produce binary executables in the `./bin` directory\n4. Test your installation by running an example\n```\n./bin/paradis tests/frank_read_src.ctrl\n```\n\n### Detailed instructions\n\nThe build system is comprised of a number of makefiles:\n\n* `makefile`           : overall makefile to build ParaDiS and supporting utilities\n* `makefile.setup`     : use to enable/disable various application features\n* `makefile.sys`       : system specific build settings for various supported systems\n* `makefile.srcs`      : complete list of all source files used to build system\n* `src/makefile`       : makefile that builds ParaDiS \n* `src/makefile.dep`   : makefile dependencies (auto-generated via make depend)\n* `tests/makefile`     : makefile for cleaning up and managing the test directory\n* `utils/makefile`     : makefile to building the various utility applications\n* `ext/makefile`       : makefile for building any external dependencies\n\nIf you want or need to customize the build for your machine, you may need to adjust the two \nfiles - `makefile.sys` and `makefile.setup` before executing `make`.\n\nExecuting make from the main directory will build the main ParaDiS executable\nand all the supporting tools. If you only want to build the main ParaDiS application, \nexecute `make` from the main source directory (`src/`).\n\n#### makefile.sys\n\nPrior to building ParaDiS, you will need to identify the target system \nand environment for the application. Several target systems are preset and\nare listed below:\n\n```\nlinux.intel     Linux systems using native Intel compilers.\nlinux           Generic linux system\ngcc             Generic system build using gnu compilers\naix             IBM aix systems using native compilers (LLNL's ice, berg, purple, um, up, uv...)\nmac             MacBook Pro \nbgp             LC BlueGene/P systems (dawn, dawndev)\nbgq             LC BlueGene/Q systems (sequoia, rzuseq)\nmc-cc           Stanford ME Linux system using intel compilers\nwcr             Stanford ME Linux system using intel compilers\ncygwin          Stanford Linux emulator for Windows PC\nxt4             Cray XT4 systems (NERSC's franklin)\n```\n\nIf you are attempting to build the ParaDiS software on a system that is not listed above,\nyou may need to copy and/or adjust an existing system in the `makefile.sys` file and\nset the `SYS=` parameter in `makefile.setup`.\n\n#### makefile.setup\n\nAll the user-specific features and settings are enabled/disabled via the \n`makefile.setup` file.  Here you can specify whether the application will \nrun serially or parallel (via MPI), set the optimization level, enable the\nX-Windows display, etc.  Details on all the switches are documented in the\nfile.\n\nThe main parameters you need to select are:\n\n```\n# required parameter, must identify the target host machine\nSYS=[linux.intel | linux | gcc | aix| mac | bgp| bgq | mc-cc| wcr| cygwin | xt4 ]\n\nMODE=SERIAL     # sets the execution mode to serial\nMODE=PARALLEL   # sets the execution mode to parallel (default, requires an MPI installation) \n\nXLIB_MODE=ON    # enables  the X-Window visualization (do not use for production runs)\nXLIB_MODE=OFF   # disables the X-Window visualization (default)\n```\n\nAll other parameters and settings are detailed in the `makefile.setup` file.\n\n## Directory Structure\n\nBrief description of the directories within this distribution:\n\n* `./bin`      : executable applications, created during build\n* `./src`      : C/C++ source files (*.cc)\n* `./include`  : C/C++ include files (*.h)\n* `./obj`    : object file directories (parallel and serial builds)\n* `./docs`     : support documentation \n* `./inputs`   : generic input files (Rijm tables, FMM tables, gnuplot files, and X-Windows defaults)\n* `./tests`    : example tests (`*.ctrl`, `*.data`, `*.sh`)\n* `./utils`    : support utilities\n* `./tools`    : support tools\n\n## Applications and Tools\n\nThe following applications and support utilities are created when building \nthe ParaDiS application from the root location:\n\n* `./bin/paradis`           : main ParaDiS simulator\n* `./bin/paradisconvert`    : conversion utility for older (unsupported) control and data files\n* `./bin/calcdensity`       : dislocation density calculator\n* `./bin/ctablegen`        : utility for creating PBC image correction tables\n* `./bin/ctablegenp`        : utility for creating PBC image correction tables (parallel/MPI version)\n* `./bin/paradisgen`        : utility for creating initial, random dislocation networks\n* `./bin/paradisrepart`     : utility for repartitioning existing domain decompositions\n* `./bin/stresstablegen`    : utility for creating far-field stress tables\n\n## Simulation Examples\n\nThere are numerous examples of simulation input files located in the \n`tests/` directory. ParaDiS is mainly controlled by two input files, a `.data` file and a `.ctrl` file.\nThe `data` file specifies the domain size and initial dislocation network.\nThe `ctrl` file specifies the materials parameters, loading procedure, and numerical parameters of the simulation.\n\nMost of the control files in the `./tests` directory are setup for parallel execution by 8 processors. This enables\nthe tests to be run on a contemporary multicore desktop. The total number of MPI processes\nis control by the domain parameters:\n\n```\nnumXdoms = 2  # number of X-axis domains\nnumYdoms = 2  # number of Y-axis domains\nnumZdoms = 2  # number of Z-axis domains\n```\n\nThe total domain count (processes) = (`numXdoms` * `numYdoms` * `numZdoms`)\nNote that the total domain count identified in the control file needs to be consistent with the \nnumber of MPI tasks/processes that are launched when the application is run. The command line \nfor launching an MPI-enabled run of ParaDiS using the above domain configuration would be,\n\n```\nmpirun -n 8 ./bin/paradis ./tests/mg-cAxis.ctrl\n```\n\nImportant note: several of the test files use precomputed FMM tables.  Those tables are located\nin the `./inputs` directory. The paths to these files are controlled in the ParaDiS control files\nassume that the ParaDiS application is started from the main ParaDiS directory (e.g. `./bin/paradis`).\nIf you do not execute ParaDiS in this way, you must specify the paths to the input control, data,\nand any auxiliary files relative to where you are running the application.\n\nSome of the examples include Fast Multipole Method (FMM) expansion tables.  You can create FMM image \ncorrection tables using the `ctablegen` utility. \n\nTo generate an FMM table for an isotropic simulation: \n```\n  ./bin/ctablegen -nu 3.327533e-01 -mu 6.488424e+10 -mporder 2 -torder 5 -outfile inputs/fmm-ctab.data\n```\nSee the ParaDiS users guide for more details on building FMM correction tables.\n\nInitial dislocation networks can be created using the `paradisgen` application.\n\n## Citation\n\n```\n@article{arsenlis2007enabling,\n  title={Enabling strain hardening simulations with dislocation dynamics},\n  author={Arsenlis, Athanasios and Cai, Wei and Tang, Meijie and Rhee, Moono and Oppelstrup, Tomas and Hommes, Gregg and Pierce, Tom G and Bulatov, Vasily V},\n  journal={Modelling and Simulation in Materials Science and Engineering},\n  volume={15},\n  number={6},\n  pages={553},\n  year={2007},\n  publisher={IOP Publishing}\n}\n```\n\n## License\n\nParaDiS is released under the BSD-3 license. See [LICENSE](LICENSE) for details.\n\nLLNL-CODE-853453\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fparadis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fparadis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fparadis/lists"}