{"id":20885830,"url":"https://github.com/compas-dev/compas_fea2","last_synced_at":"2026-03-06T19:10:26.960Z","repository":{"id":89440459,"uuid":"244622612","full_name":"compas-dev/compas_fea2","owner":"compas-dev","description":"Finite Element Analysis toolbox for the COMPAS framework.","archived":false,"fork":false,"pushed_at":"2024-07-29T16:33:05.000Z","size":154105,"stargazers_count":6,"open_issues_count":15,"forks_count":6,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-09-18T01:38:08.325Z","etag":null,"topics":["abaqus","ansys","blender","compas","fea","opensees","rhino","structures"],"latest_commit_sha":null,"homepage":"https://compas.dev/compas_fea2","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/compas-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-03T11:49:30.000Z","updated_at":"2024-08-13T02:03:39.000Z","dependencies_parsed_at":"2024-05-17T16:46:31.260Z","dependency_job_id":"4f9ce5de-2c63-4c83-9f3e-1f70af542968","html_url":"https://github.com/compas-dev/compas_fea2","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compas-dev%2Fcompas_fea2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compas-dev%2Fcompas_fea2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compas-dev%2Fcompas_fea2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compas-dev%2Fcompas_fea2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compas-dev","download_url":"https://codeload.github.com/compas-dev/compas_fea2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225148807,"owners_count":17428430,"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":["abaqus","ansys","blender","compas","fea","opensees","rhino","structures"],"created_at":"2024-11-18T08:14:46.462Z","updated_at":"2026-03-06T19:10:21.919Z","avatar_url":"https://github.com/compas-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# compas_fea2\n\n2nd generation of compas_fea. Current main changes:\n\n* Plug-in architecture\n* Improved API for in-parallel development\n* Extended functionalities\n\n## Package Objectives\n\nThis package aims to create a bridge between the generation of structural geometries and their analysis using popular commercial FEA software. The geometry generation features of these software are usually limited, tedious, and time-consuming.\n\n### Users\n\n* Simplify finite element analysis with 'pre-made' recipes to help inexperienced users get meaningful results\n* Better link with compas and its ecosystem\n* Provide a unified (as much as possible) approach across multiple backends to help researchers communicate with their industrial partners. For example, a researcher develops a structural system for a pavilion using Abaqus, but the engineer of record uses Sofistik to check the results: the analysis model for both structures can be derived from the same script with few changes\n* Increase the number of backend solvers supported\n\n### Developers\n\n* Clearly separate frontend (geometry generation, problem definition, and result displaying) and backend (FEA analysis, result post-process) to enhance in-parallel development\n* Offer frontend and backend developers a framework to help the structuring of their modules and avoid code repetition\n* Provide comprehensive documentation and examples to facilitate the development and integration of new features\n* Ensure modularity and extensibility to allow easy addition of new functionalities and support for additional FEA software\n\n## Installation\n\nTo install compas_fea2, use the following command:\n\n```bash\npip install compas_fea2\n```\n\n## Usage\n\nHere is a basic example of how to use compas_fea2:\n\n```python\n# Import the compas_fea2 library\nimport compas_fea2\nfrom compas_fea2.model import Model, Part, Node, Element, Material, Section\nfrom compas_fea2.problem import Problem, Step, BoundaryCondition, Pattern, Load, FieldOutput\n\n# Define a Model and its parts\nmdl = Model()\nprt_1 = Part()\nprt_2 = Part()\n# Assign the parts to the model\nmdl.add_parts([prt_1, prt_2])\n\n# Define sections and materials\nmat = Material(E=..., v=..., density=...)\nsec = Section(t=..., material=mat)\n\n# Define the geometry of the structure\n# Specify nodes\nnodes_1 = [Node(xyz=...), Node(xyz=...), ...]\nnodes_2 = [Node(xyz=...), Node(xyz=...), ...]\n# Assign the nodes to a part\nprt_1.add_nodes(nodes_1)\nprt_2.add_nodes(nodes_2)\n\n# Specify elements\nelements_1 = [Element(nodes=[...], section=sec), Element(nodes=[...], section=sec), ...]\nelements_2 = [Element(nodes=[...], section=sec), Element(nodes=[...], section=sec), ...]\n# Assign the elements to a part\nprt_1.add_elements(elements_1)\nprt_2.add_elements(elements_2)\n\n# Define boundary conditions\n# Apply constraints and loads to the structure\nbcs = [BoundaryCondition(nodes=[...], ...), BoundaryCondition(nodes=[...], ...)]\nmdl.add_bcs(bcs)\n\n# Define a Problem to analyze\nprb = Problem()\n# Add the problem to the model\nmdl.add_problem(prb)\n\n# Define the steps of the analysis\nstp_1 = Step(...)\nstp_2 = Step(...)\n# Add the steps to the problem (note: this is the sequence in which they are applied)\nprb.add_steps([stp_1, stp_2])\n\n# Define the load patterns\npattern_1 = Pattern(nodes=[...], load=Load(...))\npattern_2 = Pattern(nodes=[...], load=Load(...))\n# Add the pattern to the step\nstp_1.add_pattern(pattern_1)\nstp_2.add_pattern(pattern_2)\n\n# Define the outputs to save\noutput = FieldOutput(...)\nstp_1.add_output(output)\nstp_2.add_output(output)\n\n# Run the analysis\n# Execute the finite element analysis\nprb.analyze_and_extract(...)\n\n# Post-process the results\n# Extract and visualize the results\nresults = prb.results\n\n# View the results\nprb.show()\n```\n\nFor more detailed examples and documentation, please refer to the official documentation.\n\n## Contributing\n\nWe welcome contributions from the community. If you would like to contribute, please follow these steps:\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature-branch`)\n3. Make your changes\n4. Commit your changes (`git commit -am 'Add new feature'`)\n5. Push to the branch (`git push origin feature-branch`)\n6. Create a new Pull Request\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompas-dev%2Fcompas_fea2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompas-dev%2Fcompas_fea2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompas-dev%2Fcompas_fea2/lists"}