{"id":20294740,"url":"https://github.com/diegonti/md_simulation","last_synced_at":"2026-01-31T13:10:36.167Z","repository":{"id":81286032,"uuid":"605642824","full_name":"diegonti/MD_Simulation","owner":"diegonti","description":"EIA Project for the Computational Modelling Master's Degree.","archived":false,"fork":false,"pushed_at":"2023-04-16T22:32:24.000Z","size":16421,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-04T05:31:26.311Z","etag":null,"topics":["fortran","lennard-jones","molecular-dynamics","mpi","multiprocessing","parallel-computing"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"Eines-Informatiques-Avancades/Project_I","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diegonti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-02-23T15:40:05.000Z","updated_at":"2024-02-15T11:04:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"c1354932-3546-4df9-ab29-a28200d219da","html_url":"https://github.com/diegonti/MD_Simulation","commit_stats":null,"previous_names":["diegonti/md_simulation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/diegonti/MD_Simulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegonti%2FMD_Simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegonti%2FMD_Simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegonti%2FMD_Simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegonti%2FMD_Simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diegonti","download_url":"https://codeload.github.com/diegonti/MD_Simulation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegonti%2FMD_Simulation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260705790,"owners_count":23049487,"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":["fortran","lennard-jones","molecular-dynamics","mpi","multiprocessing","parallel-computing"],"created_at":"2024-11-14T15:30:49.373Z","updated_at":"2026-01-31T13:10:31.132Z","avatar_url":"https://github.com/diegonti.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project I : MD Simulation of a VdW Gas\n\nThis is the official reposotory for the Advanced Computational Tools master subject final project, from the Atomistic and Multiscale Computational Modelling in Physics, Chemistry and Biochemistry master.\n\nThe puropose of this project is to develop a serial and pararel version of a Molecular Dynamics simulator of a Lennard-Jones fluid. Therefore, the serial code can be found at the [serial directory](./serial/), and the paralel code at the [paralel directory](./paralel/)\n\n## Table of contents\n\n- [Notes for developers](#notes-for-developers)\n- [Task Distribution](#task-distribution)\n- [Contributors](#contributors)\n\n## Notes for developers\nThis section contains relevant information regarding the workflow for the following days. Therefore, this section is indicated for everybody who wants to contribute to this project.\n\n### Git workflow\nBefore defining the Git workflow, it is convenient to set up the machinery:\nStart by forking and cloning the [main repository](https://github.com/Eines-Informatiques-Avancades/Project_I).\nOnce done, set up the following remotes:\n```bash\ngit remote add lider https://github.com/Eines-Informatiques-Avancades/Project_I.git\ngit remote add origin https://github.com/_your_forked_repository.git\ngit fetch lider\ngit pull lider master\n```\n\nThis has to be set up only the first time.\n\nNow, we will follow to describe the git workflow:\n\n1. `git fetch lider \u0026\u0026 git pull lider master`\n2. Do your changes. It is important that, for each relevant change that you do, do a commit, in the following way: `git add the_file_you_modified` (as many times as files you have modified) `git commit -m \"The changes you did\"`. This helps \nto keep track of the changes you are doing, if it is necessary to revert in some moment.\n2. Once you feel comfortable with the changes, **AND THE CODE COMPILES WITH THE DEFINED MAKEFILE** do a push into your github repository: `git push origin master`.\n3. Once done, open a pull request into the lider's repository, and everything is done :)\n\n_Note from the lider_: I'll try to schedule myself and accept the pull request every Monday at 12:00am.\n\n### Code\nIt is important to follow a familiar set of rules in order to be consistent with the code, and therefore, avoid some painful bugs:\n\n- We will stick to the Fortran 2018 standard. Therefore, all compilations must include the `-std=f2018` flag\n- Matrices regarding positions and velocities will be structured as 3xnº particles. That is, each column will represent a vector of positions or a vector of velocities for each particle. This is not arbitrary, this is because Fortran is used to work with columns.\n- We will work in double precission. It can be either definded by the following ways:\n    ```Fortran\n    use, intrinsic   :: iso_fortran_env, only: DP =\u003e REAL64\n    \n    real(kind=DP)    :: manera_uno\n    double precision :: manera_dos\n    real*8           :: manera_tres \n    ```\n    As well, when defining a numerical value, define its numerical type with the `_DP` or `d` delimitiers at the end of the numerical definition.\n#### Code style\n\nThe indentation is mandatory in order to force readability. Remember, a piece of code is more often read than written, so try to apply this fact when you are writing your code. \n\nVariables names must have sense in the context of its application, and don't use cryptic names.\n\nDocumentation is also mandatory. Since this is a collaboration project, we have to make sure that our code can be interpreted by other humans. Therefore, we will make use of the [Google documentation style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html). The language of implementation must be done in English. It is also important in the documentation to specify the type of the data that is handeled. When matrices are involved, they will be defined as `data_type[x,y,z,...]` where x, y, z are the dimensions along the specified rank.\n\n### Builds\nA build is simply a compilation of the whole program. We will work on two builds:\n\n- **Debug**: Focused on the program to work, and with the minimum number of bugs as possible. Therefore, we will make use of debugging compiler options, and we will try to solve those warnings as much as possible.\n- **Release**: Focused on speed, we will use this build to produce results. Note that this code will start once we validate or finish the Debugging release.\n\nRecall that some smart people in an office probably located in California has spent his/her time working out on smart checking that trigger warnings when parts of our code doesn't make sense or are susceptible to doesn't work properly. Therefore, the purpose of a warning is not to flood your screen making you feel like you're hacking the CNI, but to give you some smart advises in order to avoid bugs. Of course, there are warnings, like -Wtabs, that aren't quite relevant, but others can save us from hours of painful debugging.\n\n\u003cbr\u003e\n\n## Task Distribution\n- Main Program \u0026rarr; Marc Alsina\n- Readers and Writers (I/O) \u0026rarr; Emma Valdés\n- Initial Conditions \u0026rarr; Diego Ontiveros\n- Interactions \u0026rarr; Marc Alsina\n- Integrators \u0026rarr; Emma Valdés\n- Simulation (PBC \u0026 MIC, RDF, SMD) \u0026rarr; Maitane Fariñas\n- Data Analysis (Python) \u0026rarr; Diego Ontiveros\n\n\u003cbr\u003e\n\n## Contributors\n\n|  Marc Alsina   |  Maitane Fariñas  |  Diego Ontiveros   |  Emma Valdés  |\n| -------------- | ----------------- | ------------------ | ------------- |\n| ![malsinac](https://github.com/malsinac.png \"malsinac\") | ![maitanefarinas](https://github.com/maitanefarinas.png \"maitanefarinas\") | ![diegonti](https://github.com/diegonti.png \"diegonti\") | ![evaldesmartin](https://github.com/evaldesmartin.png \"evaldesmartin\") |\n| [malsinac](https://github.com/malsinac)                                 | [maitanefarinas](https://github.com/maitanefarinas)| [diegonti](https://github.com/diegonti)                                  | [emma](https://github.com/evaldesmartin)                                  |\n\nFor further questions please refer to the main resposible of this project: [malsinac](https://github.com/malsinac) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegonti%2Fmd_simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiegonti%2Fmd_simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegonti%2Fmd_simulation/lists"}