{"id":22399986,"url":"https://github.com/krproject-tech/matlab_ancf_shell","last_synced_at":"2025-07-31T14:32:23.264Z","repository":{"id":187566181,"uuid":"677210291","full_name":"KRproject-tech/MATLAB_ANCF_shell","owner":"KRproject-tech","description":"Nonlinear shell dynamics analysis based on FEM shell element with Absolute Nodal Coordinate. Formulation (ANCF). ","archived":false,"fork":false,"pushed_at":"2024-11-18T04:04:18.000Z","size":34137,"stargazers_count":21,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-18T05:18:24.403Z","etag":null,"topics":["absolute-nodal-coordinate-formulation","ancf","dynamics","fem","finite-element-method","matlab","structure"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","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/KRproject-tech.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-11T02:33:07.000Z","updated_at":"2024-11-18T04:04:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"23a351c5-2513-4994-9aae-618399416965","html_url":"https://github.com/KRproject-tech/MATLAB_ANCF_shell","commit_stats":null,"previous_names":["krproject-tech/matlab_ancf_shell"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KRproject-tech%2FMATLAB_ANCF_shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KRproject-tech%2FMATLAB_ANCF_shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KRproject-tech%2FMATLAB_ANCF_shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KRproject-tech%2FMATLAB_ANCF_shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KRproject-tech","download_url":"https://codeload.github.com/KRproject-tech/MATLAB_ANCF_shell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228257696,"owners_count":17892652,"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":["absolute-nodal-coordinate-formulation","ancf","dynamics","fem","finite-element-method","matlab","structure"],"created_at":"2024-12-05T08:10:49.507Z","updated_at":"2025-07-31T14:32:23.257Z","avatar_url":"https://github.com/KRproject-tech.png","language":"MATLAB","readme":"\n![図1](https://github.com/KRproject-tech/MATLAB_ANCF_shell/assets/114337358/e5dbcfc7-b599-4b77-b23e-5d20768e6cac)\n\n\n# MATLAB_ANCF_shell\nNonlinear plate dynamics analysis based on FEM shell element with Absolute Nodal Coordinate Formulation (ANCF) [^1]. \n(This code is validated with MATLAB R2007b or later versions)\n\n![License](https://img.shields.io/github/license/yuki-koyama/elasty)\n\u003cimg src=\"https://img.shields.io/badge/Matlab-%3E%3D%202007b%20-blue.svg\" alt=\"Matlab\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Windows-Pass-brightgreen.svg\" alt=\"Windows\"\u003e\n\n\n\n**Language**\n\u003cp\u003e\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/matlab/matlab-original.svg\" width=\"60\"/\u003e\n\u003cp\u003e\n\n**Communication**\n\n\u003ca style=\"text-decoration: none\" href=\"https://twitter.com/hogelungfish\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/twitter-%40hogelungfish-1da1f2.svg\" alt=\"Twitter\"\u003e\n\u003c/a\u003e\n\u003cp\u003e\n\n## Directory    \n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eShow Directories\u003c/b\u003e\u003c/summary\u003e\n\n\u003cpre\u003e\n├─Plate_FEM_explicit_3_SURFplot\n│  ├─cores\n│  │  ├─functions\n│  │  ├─solver\n│  │  └─ToolBoxes\n│  └─save\n│      └─fig\n└─Plate_FEM_implicit_0\n    ├─cores\n    │  ├─functions\n    │  ├─solver\n    │  └─ToolBoxes\n    └─save\n        └─fig\n\u003c/pre\u003e\n\n\u003c/details\u003e\n\n* __Plate_FEM_implicit_0__ : Implicit solver (Faster and more robust under the thin thickness condition)\n\n* __Plate_FEM_explicit_3_SURFplot__ : Explicit solver (Light computing cost)\n\n__Comparisons between Semi-implicit solver vs ODE113 (MATLAB explicit solver)__\n[![](https://img.youtube.com/vi/R_YgaX05x_U/0.jpg)](https://youtube.com/shorts/R_YgaX05x_U?si=56Yt0fEM15mr7k4f)\n\n\n\n## Publications\n\nThis code with the implicit solver (__Plate_FEM_implicit_0__) was employed as a structure solver for the following publication(s):\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eShow Publications\u003c/b\u003e\u003c/summary\u003e\n\n\n* Influence of the aspect ratio of the sheet for an electric generator utilizing the rotation of a flapping sheet, Mechanical Engineering Journal, Vol. 8, No. 1 (2021).  \nhttps://doi.org/10.1299/mej.20-00459\n\n````\n@article{Akio YAMANO202120-00459,\n    title={Influence of the aspect ratio of the sheet for an electric generator utilizing the rotation of a flapping sheet},\n    author={Akio YAMANO and Hiroshi IJIMA and Atsuhiko SHINTANI and Chihiro NAKAGAWA and Tomohiro ITO},\n    journal={Mechanical Engineering Journal},\n    volume={8},\n    number={1},\n    pages={20-00459-20-00459},\n    year={2021},\n    doi={10.1299/mej.20-00459}\n}\n````\n\n* Flow-induced vibration and energy-harvesting performance analysis for parallelized two flutter-mills considering span-wise plate deformation with geometrical nonlinearity and three-dimensional flow, International Journal of Structural Stability and Dynamics, Vol. 22, No. 14, (2022).  \nhttps://doi.org/10.1142/S0219455422501632\n\n````\n@article{doi:10.1142/S0219455422501632,\n    author = {Yamano, Akio and Chiba, Masakatsu},\n    title = {Flow-Induced Vibration and Energy-Harvesting Performance Analysis for Parallelized Two Flutter-Mills Considering Span-Wise Plate Deformation with Geometrical Nonlinearity and Three-Dimensional Flow},\n    journal = {International Journal of Structural Stability and Dynamics},\n    volume = {22},\n    number = {14},\n    pages = {2250163},\n    year = {2022},\n    doi = {10.1142/S0219455422501632}\n}\n````\n\n* Influence of boundary conditions on a flutter-mill, Journal of Sound and Vibration, Vol. 478, No. 21 (2020).  \nhttps://doi.org/10.1016/j.jsv.2020.115359\n\n````\n@article{YAMANO2020115359,\n    title = {Influence of boundary conditions on a flutter-mill},\n    journal = {Journal of Sound and Vibration},\n    volume = {478},\n    pages = {115359},\n    year = {2020},\n    doi = {https://doi.org/10.1016/j.jsv.2020.115359},\n    author = {A. Yamano and A. Shintani and T. Ito and C. Nakagawa and H. Ijima}\n}\n````\n\n\n\u003c/details\u003e\n\n## Preparation before analysis\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eShow instructions\u003c/b\u003e\u003c/summary\u003e\n\n__[Step 1] Install the ToolBoxes__\n\nThe following ToolBoxes in “./XXXX/cores/ToolBoxes/” are required,\n\n\n__For numerical analysis:__\n\n*\t__“Meshing a plate using four noded elements”__ by KSSV:\n\nhttps://jp.mathworks.com/matlabcentral/fileexchange/33731-meshing-a-plate-using-four-noded-elements\n\n*\t__“Sparse sub access”__ by Bruno Luong:\n\nhttps://jp.mathworks.com/matlabcentral/fileexchange/23488-sparse-sub-access\n\n*   __“Vectorized Multi-Dimensional Matrix Multiplication”__ by Darin Koblick:\n\nhttps://jp.mathworks.com/matlabcentral/fileexchange/47092-vectorized-multi-dimensional-matrix-multiplication?s_tid=prof_contriblnk\n\n__For plotting results:__\n\n*\t__“mmwrite”__ by Micah Richert:\n  \nhttps://jp.mathworks.com/matlabcentral/fileexchange/15881-mmwrite\n\n*\t__“mpgwrite”__ by  David Foti:\n   \nhttps://jp.mathworks.com/matlabcentral/fileexchange/309-mpgwrite?s_tid=srchtitle\n\n*\t__“mmread”__ by Micah Richert:\n\nhttps://jp.mathworks.com/matlabcentral/fileexchange/8028-mmread\n\n\n__[Step 1.2] Add path to installed ToolBoxes__\n\nModify \"add_pathes.m\" to add path to abovementined installed ToolBoxes as follows,\n````\naddpath ./cores/ToolBoxes/XX;\n````\nwhere `XX` is the name of folder of the installed ToolBox.\n\n__[Step 2] Start GUI form__\n\nOpen the “GUI.fig” from MATLAB.\n\n![タイトルなし](https://user-images.githubusercontent.com/114337358/192756887-25b36670-8faa-423f-b535-63a536ced8c8.png)\n\n__[Step 2.1] Pre-setting__\n\nPush the \"Parameters\" button and edit parameters.\n\n__[Step 3] Start analysis__\n\nPush the “exe” button and wait until the finish of the analysis.\n\n__[Step 4] Plot results__\n\nPush the “plot” button.\n    \n__[Step 5] View plotted results__\n\nResults (figures and movie) plotted by [Step 4] are in \"./save\" directory.\n\n\u003c/details\u003e\n\n\n## Parameters\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eShow instructions\u003c/b\u003e\u003c/summary\u003e\n\n\nAnalytical condisions are in \"./save/param_setting.m\"\n\n```matlab\nEnd_Time = 1.0;             %% Analytical time [s]\nd_t = 1e-4;                 %% step time [s]\ncore_num = 6;               %% The number of CPUs for computing [-]\nmovie_format = 'mpeg';      %% movie format [-]\n% movie_format = 'avi';\nspeed_check = 0;            %% \n\n%% Plate\nrho_m = 1000;           \t%% density [kg/m^3]\nEelastic = 1e+3;        \t%% Young's modulus [Pa]\nnu = 0.3;                   %% Poiison ratio [-]\n\nLength = 100e-3;          \t%% Length [m]\nWidth = 100e-3;             %% Width [m]\nthick = 10e-3;           \t%% Thickness [m]\nNx = 8;                   \t%% The number of x-directional elements [-]\nNy = 8;                   \t%% The number of y-directional elements [-]\nN_gauss = 5;                %% Gauss-Legendre [-]\n\ng = 9.81;                   %% gravity acc. [m/s^2]\nF_in = -rho_m*g*[ 0 0 1].';\t%% gravity [N/m^3]\n```\n\nand boundary conditions for nodes on the plate;\n\n```matlab\n%% Boundary conditions\nnode_r_0 = [ 1];          \t%% Node number for fixed node [-]\nnode_dxr_0 = [ ];        \t%% Node number for fixed x-directional gradient [-]\nnode_dyr_0 = [ ];       \t%% Node number for fixed y-directional gradient [-]\n```\n\nThen, boundary conditions for a plate are written as,\n\n* __Pinned at the corner of the plate__\n ```matlab\n%% Boundary conditions\nnode_r_0 = [ 1];          \t%% Node number for fixed node [-]\nnode_dxr_0 = [ ];        \t%% Node number for fixed x-directional gradient [-]\nnode_dyr_0 = [ ];       \t%% Node number for fixed y-directional gradient [-]\n```\n\n* __Clamped at the leading-edge__\n```matlab\n%% Boundary conditions\nnode_r_0 = [ 1:Ny+1 ];       %% Node number giving the displacement constraint [-]\nnode_dxr_0 = [ 1:Ny+1 ];     %% Node number giving x-directional gradient constraint [-]\nnode_dyr_0 = [ 1:Ny+1 ];     %% Node number giving y-directional gradient constraint [-]\n```\n\n* __Pinned at the leading-edge__\n```matlab\n%% Boundary conditions\nnode_r_0 = [ 1:Ny+1 ];     %% Node number giving the displacement constraint [-]\nnode_dxr_0 = [ ];          %% Node number giving x-directional gradient constraint [-]\nnode_dyr_0 = [ 1:Ny+1 ];   %% Node number giving y-directional gradient constraint [\n```\nwhere index in vector shows the node index around a plate element to apply boundary conditions.\n\n\u003c/details\u003e\n\n\n## Gallery\n\n* Young's modulus: $1.0 \\times 10^5 \\ \\rm{Pa}$\n* density: $7810 \\ \\rm{kg/m^3}$\n* Poisson ratio: $0.3$\n* Length, width: $0.3 \\ \\rm{m}$\n* Thickness: $0.01 \\ \\rm{m}$\n\n\n![untitled](https://github.com/KRproject-tech/MATLAB_ANCF_shell/assets/114337358/079c1aec-ef70-4440-af5c-2affb104febc)\n\nDeformed shape of the pendulum by this code ($8^2$ elements).\n\n![untitled2](https://github.com/KRproject-tech/MATLAB_ANCF_shell/assets/114337358/ab0a9812-acdd-4bea-ac7a-89cbdee85bd7)\n\nDeformed shape of the pendulum by this code ($12^2$ elements).\n\n\n![reduced_model](https://github.com/KRproject-tech/MATLAB_ANCF_shell/assets/114337358/8f979d19-6967-448a-b42d-4a88274c69cc)\n\nDeformed shape of the pendulum by the preceding report (Model I, $8^2$ elements, interpolated) [^2].\n\n\n![Energy](https://github.com/KRproject-tech/MATLAB_ANCF_shell/assets/114337358/cd48ac06-6227-4abd-995d-d78d7a8085dd)\n\nTime series of energy of the falling plate.\n\n## Demonstration movie\n\n[![](https://img.youtube.com/vi/FohSLgNJ3vY/0.jpg)](https://www.youtube.com/watch?v=FohSLgNJ3vY)\n\n\n\n## Stargazers over time\n[![Stargazers over time](https://starchart.cc/KRproject-tech/MATLAB_ANCF_shell.svg?variant=adaptive)](https://starchart.cc/KRproject-tech/MATLAB_ANCF_shell)\n\n## License\n\nMIT License\n\n## Contributing\n\nIssue reports and pull requests are highly welcomed.\n\n### References  \n\n[^1]: A. Shabana, Computational Continuum Mechanics, Chap. 6 (Cambridge University Press, 2008), pp. 231–285.\n[^2]: K. Dufva and A. Shabana, Analysis of thin plate structures using the absolute nodal coordinate formulation, Proc. IMechE Vol. 219 Part K: J. Multi-body Dynamics, 2005.\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrproject-tech%2Fmatlab_ancf_shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrproject-tech%2Fmatlab_ancf_shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrproject-tech%2Fmatlab_ancf_shell/lists"}