{"id":26278514,"url":"https://github.com/ginkobalboa/parfis","last_synced_at":"2026-05-09T01:38:07.675Z","repository":{"id":38365917,"uuid":"435569612","full_name":"GinkoBalboa/parfis","owner":"GinkoBalboa","description":"Particles and field simulator. Written in C++ with Python bindings. The algorithm is based on the particle-in-cell (PIC) method used for interacting many-particle systems.","archived":false,"fork":false,"pushed_at":"2022-12-02T00:35:52.000Z","size":4286,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-13T17:53:51.754Z","etag":null,"topics":["cpp","cuda","physics-simulation","python"],"latest_commit_sha":null,"homepage":"https://www.parfis.com","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GinkoBalboa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-06T16:32:48.000Z","updated_at":"2022-09-08T16:36:49.000Z","dependencies_parsed_at":"2023-01-23T21:30:44.463Z","dependency_job_id":null,"html_url":"https://github.com/GinkoBalboa/parfis","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GinkoBalboa%2Fparfis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GinkoBalboa%2Fparfis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GinkoBalboa%2Fparfis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GinkoBalboa%2Fparfis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GinkoBalboa","download_url":"https://codeload.github.com/GinkoBalboa/parfis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243581089,"owners_count":20314167,"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":["cpp","cuda","physics-simulation","python"],"created_at":"2025-03-14T13:16:12.448Z","updated_at":"2026-05-09T01:38:07.626Z","avatar_url":"https://github.com/GinkoBalboa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parfis\n\n![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/GinkoBalboa/parfis)\n![GitHub](https://img.shields.io/github/license/GinkoBalboa/parfis)\n[![Build and test Actions Status](https://github.com/GinkoBalboa/parfis/actions/workflows/main.yml/badge.svg)](https://github.com/GinkoBalboa/parfis/actions)\n\nParfis is an acronym for Particles and Field Simulator. Parfis is written in \nC++ with Python bindings. The algorithm is based on the particle-in-cell \n(PIC) method used for interacting many-particle systems. In the PIC method\nindividual particles (or fluid elements) in a Lagrangian frame are tracked \nin a continuous phase space, whereas moments of the distribution such as \ndensities and currents are computed simultaneously on Eulerian (stationary) \nmesh points.\n\n## Quick start\n\nYou can quickly install and try parfis by doing the following in your terminal:\n\n``` bash\npip install parfis\n```\n\nAfter installing you can try if the library loads and check the info of \nthe istalled build with the following three commands from your python terminal:\n\n``` python\nfrom parfis import Parfis\nParfis.load_lib()\nprint(Parfis.info())\n```\n\n## Explore more possibilities\n\nExplore the possibilities by checking some of the examples given in the \n[demo](https://www.parfis.com/demo.html) section of the [doc web-site](https://www.parfis.com).\n\n\n## Building from source\n\nThe build configuration is generated with CMake. After obtaining the source from the\nGitHub repo, run the CMake commands shown here.\n\n\n### Simple build (no googletest)\n\nFor building the dynamic library you will need cmake and cxx compiler. For running cpp\ntests you will need to pull and build googletest. On Linux the following commands\nwill install cmake and cxx compiler, and the scripts build the parfis lib for the two \nversions of the state variable (float and double) and run the python tests:\n\n``` bash\nsudo apt get install cmake\nsudo apt get install g++\ncd scripts\n./buildParfis.sh \n./buildParfis.sh float\n./installParfisLocally.sh\n./runPythonTests.sh\n```\n\n### Building with googletest\n\nIf you plan to run googletests on the pure cpp library. You should install google test\nfirst and set the cmake script build you the tests from `cpp_test` folder. This is written\nin the following scripts (for debug mode and state type double).\n\n``` bash \ncd scripts\n./buildGoogletest.sh\n./buildParfis.sh Debug gtestAll\n./runDebugGtestAll.sh\n```\n\n### Building on Linux and Windows from terminal\n\nBuilding on Linux and Windows is the same, presumably you have CMake installed:\n\n``` bash\ncd parfis\nmkdir build\ncd build\ncmake ..\ncmake --build . --config Release\n```\n\nFor more info on building from source check [build](https://www.parfis.com/build.html) section \nfrom the doc web-size.\n\n### Building with conda\n\nYou can use the supplied conda environment `.yml` file to create an\nenvironment `parfis` from which you can perform all the compilation, google testing,\npytesting and doc generation.\n\nTo create a `parfis` environment run:\n\n``` bash\ncd script\nconda env create -n parfis --file ./parfisCondaEnv.yml\nconda activate parfis\n```\n\nTo run python tests: \n- Install the requred python modules from the requrements file in the script directory. \n- Run local installation of parfis.\n\n``` bash\npip install -r requirements.txt\n./installParfisLocally.sh\n```\n\nSince the `requirements.txt` has all the needed modules to generate\ndocumentation, the later is generated by calling the following scirpt.\n\n``` bash\n./buildDocOnly.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fginkobalboa%2Fparfis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fginkobalboa%2Fparfis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fginkobalboa%2Fparfis/lists"}