{"id":13724130,"url":"https://github.com/kazulagi/plantFEM","last_synced_at":"2025-05-07T17:32:56.788Z","repository":{"id":36970784,"uuid":"210179111","full_name":"kazulagi/plantFEM","owner":"kazulagi","description":"This is a plant/farming simulator based on Finite Element Method, which targets crops in fields and soil foundations. This software provides multi-physical simulations of agriculture for canopies, plants, and organs for farmers, breeders, agronomists, and civil engineers. Please try and give us feedback.","archived":false,"fork":false,"pushed_at":"2024-09-27T12:29:34.000Z","size":318486,"stargazers_count":42,"open_issues_count":6,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-29T22:31:36.829Z","etag":null,"topics":["agriculture","fem","finite-element-methods"],"latest_commit_sha":null,"homepage":"https://github.com/kazulagi/plantFEM.git","language":"Fortran","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/kazulagi.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":"2019-09-22T16:31:08.000Z","updated_at":"2024-09-27T12:29:38.000Z","dependencies_parsed_at":"2023-09-21T19:28:19.681Z","dependency_job_id":"2445a0a9-909a-4add-8e5a-417c438e1cfb","html_url":"https://github.com/kazulagi/plantFEM","commit_stats":{"total_commits":843,"total_committers":5,"mean_commits":168.6,"dds":0.6168446026097272,"last_synced_commit":"5fc1bbca71f40e57819e966b84fd617ebc84c52b"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazulagi%2FplantFEM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazulagi%2FplantFEM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazulagi%2FplantFEM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kazulagi%2FplantFEM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kazulagi","download_url":"https://codeload.github.com/kazulagi/plantFEM/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222490096,"owners_count":16992492,"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":["agriculture","fem","finite-element-methods"],"created_at":"2024-08-03T01:01:50.800Z","updated_at":"2024-11-14T13:31:47.264Z","avatar_url":"https://github.com/kazulagi.png","language":"Fortran","funding_links":[],"categories":["Consumption"],"sub_categories":["Agriculture and Nutrition"],"readme":"![Growth](https://user-images.githubusercontent.com/54159711/177001085-9ecd60a8-94b9-4848-b33e-af51545e1c9c.gif)\n\n\n![soy_scalar_field](https://user-images.githubusercontent.com/54159711/147451703-cd0ecca3-5a87-4cc7-81e2-4621210dc0c4.jpeg)\n\n\n![soyfield](https://user-images.githubusercontent.com/54159711/130534646-8bf5797a-f04f-4d05-aa47-6ca79a481a11.png)\n\u003c!--\n![soaked_soy_seed](https://user-images.githubusercontent.com/54159711/84125111-0b8f6b00-aa77-11ea-9f79-1acfe37e2b8f.png)\n--\u003e\n![grass_leaf](https://user-images.githubusercontent.com/54159711/84125213-311c7480-aa77-11ea-8c61-e7bbce016f8a.gif)\n\u003c!--\n![image931](https://user-images.githubusercontent.com/54159711/84130533-5eb8ec00-aa7e-11ea-92c9-08a49ccc3674.png)\n--\u003e\n\n![Civil_Engineering](https://user-images.githubusercontent.com/54159711/167798367-782058ff-e679-411d-a250-d3399e17fd21.png)\n\n# [New!] plantFEM 22.04(LTS) is released!\n\n## Specification\n\n| plantFEM | | \n| ---- | ---- | \n| Developer | [Haruka Tomobe](https://scholar.google.com/citations?user=aJsSCAYAAAAJ\u0026hl=en) \u0026 [plantFEM.org](https://plantfem.org) |\n| Working state | current | \n| Written in | Fortran 2003, Python 3.x, C89  | \n|Source model | Open-source |\n| Initial release | 21.10 (20 October 2021)|\n| First Long-Term Surpport (LTS) release | 22.04 (23 April 2022) |\n| Repository | https://github.com/kazulagi/plantfem |\n| Usage | Agricultural CAE,    Digital Twins for Agricultural/Civil Engineering |  \n| Target | Personal computers, HPC-Clusters, Servers |\n| Package Manager | soja (experimental) |\n|Platforms | x86-64 |\n|Default user interface | CLI |\n| Lisence | MIT |\n| Community | Slack (private channel) |\n| Official Website | [plantFEM.org](https://plantfem.org) |\n\n\n\n\n| Objects | Simulation | Simulation (experimental) | \n| ---- | ---- | ---- |\n| Elementary entities | Pseudo-static Deformation, Diffusion | Contact, Dynamic deformation, Reaction-diffusion | \n| Soybean | Creation, Measure size, Measure mass | Deformation, Contact, Photosynthesis |\n| Grape | Creation, Measure size, Measure mass | Deformation, Contact, Photosynthesis |\n| Maize | Creation, Measure size, Measure mass | Deformation, Contact, Photosynthesis |\n\n\n| Library structure |  |\n| ---- | ---- |\n| std | Extention of Fortran 2003. Contains fundamental classes for file-IOs and Mathematical operations.|\n| fem | Library for implementing Finite Element Method. You can create meshes (```FEMDomain```), shape-functions, boundary conditions, initial conditions and some elemental matrices.|\n| sim | A set of simulators for ```FEMDomain```. Contains deformation, diffusion, and some experimental implementations. |\n| obj | A set of classes for realistic agricultural high-/low-level objects. High-level objects: Soil, Soybean, Maize, Grape...etc. Low-level objects: stem, leaf, air, light ...etc. |\n\n| IO formats |  |\n| ---- | ---- |\n| Input |  json, vtk, msh, ASCII-text|\n| Output |  json, vtk, msh, stl, ply, ASCII-text|\n\n\n| Commands |  |\n| ---- | ---- |\n| plantfem search | Search sample codes by a keyword |\n| plantfem install | Build library and setting PATH | \n| plantfem build | Build ```server.f90``` and creates executable file ```server.out``` | \n| plantfem run | = ```plantfem build \u0026\u0026 mpirun ./server.out``` |\n| plantfem man | Manual for plantfem command. |\n\n\n| Finite Elements |  |\n| ---- | ---- |\n| 2-node line element | 1D 2D 3D|\n| 4-node isoparametric element | 2D|\n| 8-node isoparametric element | 3D|\n\n\n\n| System Requirements  |  |\n| ---- | ---- | \n| Operation System | Linux (Ubuntu 16.04+, ElementaryOS, LinuxMint, Debian), Windows 10/11 (with WSL-Ubuntu), macOS | \n| CPU | 2 cores, 1.4 GHz| \n| RAM | 2 GB |\n| Storage | 1 GB | \n\n| Dependancies (minimal) | version |\n| ---- | ---- | \n| git |  2.25.1 |\n| Python |  3.4 or later |\n\n\n| Dependancies (Installed by setup/setup.py) | version, info |\n| ---- | ---- | \n| gcc | 6.4.0 or later |\n| gfortran | 4.8.0 or later (Fortran 2003 or later) |\n| mpif90 | = OpenMPI compiler, 2.x or later |\n| apt |  1.2.35 or later |\n| pip |  pip3 or later |\n| curl |  7.47.0 or later |\n\n\n# What's next plantFEM 22.10 ?\n\n## APIs for Python, C/C++, and JavaScript (Experimental).\n[![Experimental](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1lPEzZnAS5CGuXjBw-P8VhMkcpoBxV4-k?usp=sharing)\n\n\n\u003c!-- \n[![trophy](https://github-profile-trophy.vercel.app/?username=kazulagi\u0026theme=onedark)](https://github.com/ryo-ma/github-profile-trophy)\n--\u003e\n\n# Documentation\n\n## [Click here!](https://kazulagi.github.io/plantfem.github.io/)\n\nFor detail, you can create documentation by\n\n```\nford ford.md\n```\n\n\n# How to install \n\n\n1. Clone the repository.\n```\ngit clone https://github.com/kazulagi/plantFEM.git\n```\n\n2. Run ```python3 install.py```. The default compiler is  ```mpif90```. If you want to use Intel compiler, run ```python3 install.py --compiler=intel``` instead of it.\n\n\n### For Windows users:\n1. Activate your WSL2 (Windows 10)\n\n\n2. Install \"Ubuntu 20.04\" from Microsoft Store\n\n\n3. Run command\n\n```\nwget https://plantfem.org/download/plantfem_22.04-ubuntu2004_amd64.deb\nsudo apt install plantfem_22.04-ubuntu2004_amd64.deb\n```\n\n1. You can open files by this command\n\n```\nexplorer.exe .\n```\n\n5. Enjoy!\n\n\n### For Ubuntu users:\n\nYou can download pre-build packages for\n\n## [[Click to download] Ubuntu 18.04](https://plantfem.org/download/plantfem_22.04-ubuntu2004_amd64.deb)\n## [[Click to download] Ubuntu 20.04](https://plantfem.org/download/plantfem_22.04-ubuntu2004_amd64.deb)\n\nIn case you are using Ubuntu 18.04, execute the next one-liner.\n\n```\nwget https://plantfem.org/download/plantfem_22.04-ubuntu1804_amd64.deb \u0026\u0026 sudo apt install plantfem_22.04-ubuntu1804_amd64.deb\n```\n\nIf you are using Ubuntu 20.04, execute the next one-liner.\n\n```\nwget https://plantfem.org/download/plantfem_22.04-ubuntu2004_amd64.deb \u0026\u0026 sudo apt install plantfem_22.04-ubuntu2004_amd64.deb\n```\n\nIf you want to build and run as a docker container,\n\n- (1) Activate \"Docker for Windows\" (https://docs.docker.com/docker-for-windows/)\n\n\n- (2) Open command-prompt and run\n\n```{.copy}\ngit clone -b 22.04 https://github.com/kazulagi/plantFEM \u0026\u0026 cd plantFEM/docker\n```\n\n\n\n# How to Use\n\n1. Search sample codes\n\nYou can search sample codes by\n\n```\nplantfem search\n```\n\nand type your keywords.\n\n2. Open editors (e.g. VSCode) and edit\u0026save it with extention of ```.f90```\n\n3. Build your script (For example, ```test.f90```) by\n\n```\nplantfem load test.f90\nplantfem build\n```\n\n4. Run your script.\n\n```\n./server.out\n```\n\nOr you can run it with multi-core workstations or HPC-clusters.\n\n1. Execute\n\n```\nplantfem init\n```\n\nto initialize directory.\n\n2. Edit ```server.f90```\n\n\n3. Build the project by\n\n```\nplantfem deploy\n```\n\n4. Run it by\n\n```\nmpirun --hostfile [your hostfile for OpenMPI] -np [number of process] ./server.out \n```\n\nHere is an example of hostfile\n\n```hostfile\n192.168.0.1  cpu=6\n192.168.0.2  cpu=6\n192.168.0.3  cpu=6\n```\n\n# call plantfem from Python (experimental)\n\n\n```python\n\nimport plantfem as pf\n\nsoy = pf.soybean(name=\"hello_soy\")\nsoy.create(config=\"./plantfem/Tutorial/obj/realSoybeanConfig.json\")\nsoy.msh(name=\"hello_soy\")\nsoy.json(name=\"hello_soy\")\n\n#soy.stl(name=\"hello_soy\")\n\n# path to plantfem\nsoy.run(path=\"./plantfem\")\n\n```\n\n\n\n# Try it now\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1H5cmdKa9MJUC-22dHnvIgo8k6sdQ6NnF?usp=sharing)\n\n\n\nPlant simulator based on Finite Element Method (FEM).\n\n- Tutorial:\n[Click here!](https://kazulagi.github.io/pf/)\n\n\n\n\n\n\n\u003c!--\n\n\n![LibraryStruct](https://user-images.githubusercontent.com/54159711/84358395-0e6a9700-ac02-11ea-8b11-6a428004acbb.png)\n\n![LibraryStruct001](https://user-images.githubusercontent.com/54159711/84361263-58ee1280-ac06-11ea-9f67-ed017f30ecf8.png)\n\n\n[使い方：日本語版 \u003e\u003e ](https://qiita.com/soybean) https://qiita.com/soybean\n\n\n[ \u003cstd #1\u003e Standard math library for plantFEM             \u003e\u003e ](Tutorial/playon_std/ex0001_math.f90)\n\n\n[ \u003cstd #2\u003e Kernel for file-IO                             \u003e\u003e ](Tutorial/playon_std/ex0002_fileIO.f90)\n\n\n[ \u003cstd #3\u003e Standard array-operation library for plantFEM  \u003e\u003e ](Tutorial/playon_std/ex0003_array.f90)\n\n\n[ \u003cstd #4\u003e Linear solvers for plantFEM                    \u003e\u003e ](Tutorial/playon_std/ex0004_linearsolvers.f90)\n\n\n[ \u003cstd #5\u003e Kernel for parallel computing using MPI        \u003e\u003e ](Tutorial/playon_std/ex0005_mpi.f90)\n\n\n## New! sample codes and tutorials of module \"fem\" \n\n[ \u003cfem #1\u003e domain-creation library for plantFEM           \u003e\u003e ](Tutorial/playon_fem/ex0001_mesh.f90)\n\n\n## How to use plantFEM as a blender-addon.\n\n[How to use plantFEM as a blender-addon. \u003e\u003e](doc/BlenderAddon.md)\n\n\u003c!--\n## How to run your *.f90 script with plantFEM.\n### Command-line mode:\n\n\n```\nplantfem your_script.f90\n```\n\n### Interactive mode\n\n ```\n python3 plantfem.py\n \u003e\u003e\u003e your_script.f90\n ```\n\n\n## Environment\n\n### Google Colab !new!\n\nThis can run in Google-Colab.\n\nInstallation:\n```\n!git clone -b 21.10 https://github.com/kazulagi/plantfem.git\n%cd plantfem\n%ls\n!python3 install.py\n!plantfem install\n```\nExecution:\n\n```\n!./plantfem your_script.f90\n```\n\n\n### Linux \n\n#### Ubuntu 18.04\n\n```\nsudo apt update\nsudo apt upgrade -y\nsudo apt install git\ngit clone -b 21.10 https://gitlab.com/kazulagi/plantfem.git\ncd plantfem\nsudo apt install python3\npython3 setup/setup.py\njupyter-notebook\n```\n\n- Execute Gmsh and go to Tools\u003eMesh\u003eGeneral and check \"Recombine all triangular meshes\", then, click File\u003eSave Option As Default  and close window.\n\n### macOS (Mojave)\n\n\nInstall homebrew (https://brew.sh/index)\n\n```\n/usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n```\n\nAnd, install other applications.\n\n\n```\nbrew install git\ngit clone -b 21.10 https://gitlab.com/kazulagi/plantfem.git\ncd plantfem\nbrew install python3\npython3 setup/setup.py\njupyter-notebook\n```\n\n### Windows (10.0)\n\nPlease activate Windows Subsystem for Linux (WSL) and install Ubuntu 18.04 according to the article.\n(Windows Windows Subsystem for Linux (WSL) を有効にしてください。 )\nhttps://qiita.com/Aruneko/items/c79810b0b015bebf30bb\n\nInstall following applications \n（その後、以下のアプリケーションをインストールします。）\n- VScode(https://code.visualstudio.com)\n\nand, \n\n(1) Enable WSL.\n(2) Install Ubuntu 20.04 from Windows store.\n(2) Open VScode\n(3) Open terminal and type\n\n```\nwsl\ncd ~/\nsudo apt update\nsudo apt upgrade -y\nsudo apt install git\ngit clone -b 21.10 https://gitlab.com/kazulagi/plantfem.git\ncd plantfem\nsudo apt install python3\npython3 setup/setup.py\n```\n\n(4) Open CLI mode of plantFEM\n```\npython3 SiCorF.py\n```\n(5) Install\n```\ninstall\n```\n\n(6) Set path to Home and Desktop directories.\n```\n\u003e\u003e\u003e[Enter]\nHello.f90[Enter]\ntype your username[Enter]\n```\n(7) Open Hello.f90 on your Desktop of Windows by VScode and edit it!\n\n(8) To run your program (e.g. Hello.f90), type\n```\nDesktop/Hello.f90\n```\n\n## Use plantfem as a webserver\n\nRun\n\n```\npython3 server.py\n```\nClient API/Example:\n\n```\n\n\ncurl-XPOST -d @send.json -H \"Content-Type: application/json\" https://asia-northeast2-plantfem-api.cloudfunctions.net/plantfem \u003e soy_get3.json\n```\n\n--\u003e\n\n## How to add modules for plantFEM?\n\n(1) Create your Fortran add-on in plantfem/addon or other places. An example is shown in addon/addon_example.f90. \n\n```Fortran\nmodule addon_example\n    use plantfem\n    type::addon_example_\n        ! Member variables\n        real(real64),private :: realVal\n        real(int32 ),private :: intVal\n    contains\n        ! methods (public_name =\u003e private_name)\n        procedure :: set =\u003e setaddon_sample\n        procedure :: show =\u003e showaddon_sample\n    end type\ncontains\n\n! Definitions of methods\n\n! ################################################\nsubroutine setaddon_sample(obj,realVal, intVal)\n    class(addon_example_),intent(inout) :: obj\n    real(real64),optional,intent(in) :: realVal\n    integer(int32),optional,intent(in) :: intVal\n\n    obj%realVal = input(default=0.0d0, option=realVal)\n    obj%intVal  = input(default=0, option=intVal)\n\nend subroutine\n! ################################################\n\n\n\n! ################################################\nsubroutine showaddon_sample(obj)\n    class(addon_example_),intent(in) :: obj\n    print *, \"Real-64bit value is :: \", obj%realVal\n    print *, \"int-32bit value is  :: \", obj%intVal\nend subroutine\n! ################################################\n\nend module addon_example\n```\n\n(2) Compile your addon by typing \"addon\" after\n\n\n\n```\nplantfem\n```\n\nThen, type ```addon``` and tap ENTER\n\n```\n\u003e\u003e\u003e addon\ninstalling add-on\nDirectory path of your awesome addon is : (default path = addon)\n\u003e addon\ninstalling from addon\naddon_example\nCompiling ./addon/addon_example.f90      \n \u003e\u003e addon_example.o\n | ########################### | (100%)\n\u003e\u003e\u003e\n```\n\n(3) Run your script (An example is shown in Tutorial/HowToUseAddon/ex1.f90)\n\n```Fortran\nprogram main\n    use addon_example\n    implicit none\n    type(addon_example_) :: obj\n    call obj%set(realVal=8.0d0, intVal=-100)\n    call obj%show()\nend program\n```\n(4) Done!\n```\n\u003e\u003e\u003e test.f90\n\u003e\n Real-64bit value is ::    8.0000000000000000     \n int-32bit value is  ::   -100.000000    \n\u003e\u003e\u003e \n```\n\nYou can set a hostfile\n\n```\nvi ./etc/hostfile\n```\n\nand a number of process by\n\n```\n./plantfem cpu-core\n```\n\nor\n\n```\nvi ./etc/cpucore\n```\n\n\n\n\u003c!--\n## Photography\n\nEx.1 :: 3-D Finite Element model of soybean seed sowed in a field.\n\n![3-D Finite Element model of soybean seed sowed in a field by Blender.](./doc/soaked_soy_seed.png)\n\n\nEx.2 :: 3-D thermal diffusion simulation of a grass leaf.\n\n\n![3-D thermal diffusion simulation of a grass leaf.](./doc/grass_leaf.gif)\n\n\n## import file format   \n- [Format of .scf file](doc/InputFileFormat.md)\n\n\n## Documentations\n* [Index](doc/index)   \n\n* [ArrayOperationClass](doc/ArrayOperationClass.md)     \n\n* [BoundaryConditionClass](doc/BoundaryConditionClass.md)       \n\n* [ConstitutiveModelClass](doc/ConstitutiveModelClass.md)       \n\n* [ContactMechanicsClass](doc/ContactMechanicsClass.md)        \n\n* [ControlParameterClass](doc/ControlParameterClass.md)        \n\n* [DiffusionEquationClass](doc/DiffusionEquationClass.md)       \n\n* [FEMDomainClass](doc/FEMDomainClass.md)               \n\n* [FEMIfaceClass](doc/FEMIfaceClass.md)                \n\n* [FieldClass](doc/FieldClass.md)                   \n\n* [FiniteDeformationClass](doc/FiniteDeformationClass.md)      \n\n* [LinearSolverClass](doc/LinearSolverClass.md)            \n\n* [MPIClass](doc/MPIClass.md)                     \n\n* [MainClass](doc/MainClass.md)                    \n\n* [MaterialPropClass](doc/MaterialPropClass.md)            \n\n* [MathClass](doc/MathClass.md)                    \n\n* [MeshOperationClass](doc/MeshOperationClass.md)           \n\n* [MultiDiffDeformClass](doc/MultiDiffDeformClass.md)         \n\n* [MultiPhysicsClass](doc/MultiPhysicsClass.md)            \n\n* [OpenMPClass](doc/OpenMPClass.md)                  \n\n* [PostProcessingClass](doc/PostProcessingClass.md)          \n\n* [ShapeFunctionClass](doc/ShapeFunctionClass.md)           \n\n* [SimulatorClass](doc/SimulatorClass.md)               \n\n* [TermClass](doc/TermClass)                    \n\n--\u003e\n\n### logs;\n\n- 2019/01/19 :: This Document is written.\n- 2019/01/20 :: ControlParameterClass is included\n- 2019/01/21 :: Bug Fixed :: FEMDomainClass/ExportFEMDomain.f90 about Neumann-Boundary\n- 2019/01/21 :: \"Method:DeallocateAll\"::Deallocate all alleles.(For all objects)\n- 2019/01/25 :: DisplayMesh.f90/ Implement \u003e\u003e Export Mesh data.\n- 2019/02/19 :: DiffusionEquationClass.f90 \u003e\u003e Solver for diffusion equations with time-integration by Clank-Nicolson Method\n- 2019/03/03 :: FiniteDeformationClass.f90 \u003e\u003e Solver for Finite Deformation problems (2D and 3D). \n- 2019/03/10 :: FEMIfaceClass.f90 \u003e\u003e Interface objects (3D).\n- 2019/03/10 :: MeshOperationClass.f90 \u003e\u003e Mesh can be devided and interface mesh ca be generated (3D).\n- 2019/03/21 :: install.sh and run.sh is created.\n- 2019/03/23 :: Standarize FEMDomain(.scf) objects\n- 2019/03/24 :: Field class and Simulator Class are created.\n- 2019/03/26 :: Interface Solvers are created as MultiPhysics\n- 2019/04/13 :: PreprocessingClass is created.\n- 2019/04/13 :: DictionaryClass is created.\n- 2019/05/13 :: PreProcessingClass is created.\n- 2019/06/29 :: ContactMechanicsClass is under debug\n- 2019/08/01 :: Jupyter notebook is introduced as GUI.  \n- 2019/08/01 :: Installer for Windows/macOS/Linux is created. \n- 2019/08/03 :: Delauney triangulation is now under development.\n- 2019/09/06 :: Bugfix of Simulatior\n- 2019/09/23 :: Source code is opened.Now solvers for diffusion, finite deformation, and diffusion-deformation coupling are available. Contact solver is under debugging.\n- 2021/05/15 :: Now you can install plantFEM by ```install.py``` and can run by ```plantfem run```\n- 2021/10/21 :: Release plantFEM 21.10\n- 2022/04/21 :: Beat-release: plantFEM 22.04\n\n\u003c!--\n### On going;\n- ContactMechanicsClass is created for 3-D, Frictionless contact.\n- automatic documentation program ./doc/upgrade_readme.py\n- Finite-elasto-plasticity for 3D problems is being implemented.\n\n\n### Requests;\n- For all objects 1/21 :: Rule.Style \u003e\u003e Class Name = {objectname_} + \"Class\"\n- For all objects 1/21 :: \"Class::EditorClass\" \u003e\u003e Edit and modify InputObjects\n- For .bat files 2019/3/4 :: Adopt Windows\n- For Diff and Deformation :: generate restartfiles\n- For Shape Function 2019/3/10 :: Enable Triangular elements. \n- Confirm that the FEMIfaceClass.f90 can work under 2D confition.\n- Developing Contact Mechanics Class.\n- Developing All shape-functions for the preparation of space-time class\n- Add-on for Blender\n- Use opencv-python as a imaging library instead of PIL.\n- Caution:: convertMeshType may have some bags: jacobian may be negative.\n\n\n\n### Questions \u0026 Answers;\n\n- Does it allow interactions between two domains without using interface? : No.\n- Can interfaces take the forms of 1-D, 2-D and 3-D? : Yes.\n- Does interface include not only surface-to-surface but also domain-to-domain (element-to-element)? : Yes.\n- When the interfaces are to be generated? : Anytime.\n- Can we use multiple types of elements in a mesh? : No, we cannot. \n- Can we use multiple types of Strain Theory in a mesh? : No, we cannot. \n- Can we use multiple types of Constitutive Models in a mesh? :  No, we cannot, however, it will be revised.\n\n### Calling for someone who can create following modules.\n\n- plantFEM-API for Blender \u003e\u003e We would like to use Blender as a GUI. Author tried to create the API (see src/BlenderClass), however, it will take more time to understand and implement the system Blender 28.0-API and the plantFEM-API for Blender is now stopping.\n- Fluid solvers (by using src/FEMDomainClass)\n- Functional-structural model for cereals.(like src/LsystemClass)\n\n--\u003e\n\n## Acknowledgements\n\nThis project is financially supported by the following research grants.\n\n- Grant-in-Aid for Young Scientists(Start-up), (ID:20K22599), JSPS, JAPAN\n- Grant-in-Aid for JSPS Fellows, (ID:17J02383), JSPS, JAPAN\n\n## Relevant publications\n\n[1] Haruka Tomobe, Kazunori Fujisawa, Akira Murakami, Experiments and FE-analysis of 2-D root-soil contact problems based on node-to-segment approach, Soils and Foundations, Volume 59, Issue 6, 2019, Pages 1860-1874.\n\n[2] Haruka Tomobe, Kazunori Fujisawa, Akira Murakami, A Mohr-Coulomb-Vilar model for constitutive relationship in root-soil interface under changing suction, Soils and Foundations, Volume 61,2021, Pages 815–835. \n\n[3] Haruka Tomobe, Yu Tanaka, Tomoya Watanabe, plantFEM: A Numerical Platform for Multi-physical Simulation of Plants, Third International Workshop on Machine Learning for Cyber-Agricultural Systems (MLCAS2021), Page 22.\n\n[4] Haruka Tomobe, Vikas Sharma, Harusato Kimura, Hitoshi Morikawa, An Energy-based Overset Finite Element Method for Pseudo-static Structural Analysis. J. Sci. Comput. 2023, 94:55.\n\nOthers are under revision and/or under preparation.\n\n### TODO:\n- Python-interface\n- Spline curve\n- NURBS curve\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkazulagi%2FplantFEM","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkazulagi%2FplantFEM","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkazulagi%2FplantFEM/lists"}