Automatic differentiation for solid mechanics, example scripts
收藏资源简介:
This is a static collection of the scripts needed to reproduce the examples of the paper: Vigliotti A., Auricchio F., "Automatic differentiation for solid mechanics", Archives of Computational Methods in Engineering, 2020, In the press DOI 10.1007/s11831-019-09396-y The same data are also availble from the following github repository: https://github.com/avigliotti/AD4SM.jl the above repository includes the AD4SM.jl package files and will be updated with new versions, new examples, bug corrections, etc. The scripts included in this data set are written in the Julia programming language and will need a working installation in order to run properly. Julia is an open-source, high-level, high-performance, dynamic programming language. Refer to the Julia language website for more information and downloads at https://julialang.org/ Following the content of the individual files: - adiff.jl : main module implementing the dual number algebra needed for the forward differentiation - materials.jl : module implementing the strain energy density functions for the different material models - elements.jl : module implementing the element integration rules, the functions for evaluating the deformation energy of the entire model, together with the Lagrange multipliers, and the solvers - example_01_non_linear_truss.jl : julia file for the first example 1 of the paper, this file produce as output the openscad model of the deformed truss for producing preety images - example_01_non_linear_truss.ipynb : jupyther notebook file for example 1 - example_02_Euler_beams.ipynb : julia file for the first example 2 of the paper - example_02_Euler_beams.jl : jupyther notebook file for example 2 - example_03_plane_stress.ipynb : jupyther notebook file for the first example 3 of the paper - example_03_plane_stress.jl : julia file for example 3 - example_04_AxSymDomain.ipynb : notebook file for example 4 - example_04_AxSymDomain.jl : julia file for example 4 - example_05_3DSpring.jl : julia file for example 5, this files produces output files readable with paraview - Pattern2D03FinerMesh02j.inp : input file for example 3 - AxSymDomainj.inp : input file for example 4 - 3DSpringHexaj.inp : input file for example 5 - polyhedron_hedges.scad : helper file to produce the openscad files for the deformed lattices of example 1 - description.txt : this file - step_to_reproduce.txt : the file with the steps to reproduce te ecamples
本数据集为复现论文《Automatic differentiation for solid mechanics》(固体力学中的自动微分,作者Vigliotti A.、Auricchio F.,发表于《Archives of Computational Methods in Engineering》2020年,DOI:10.1007/s11831-019-09396-y)中示例的脚本静态合集。 该数据集内容亦可通过以下GitHub仓库获取:https://github.com/avigliotti/AD4SM.jl。上述仓库包含AD4SM.jl软件包文件,后续将持续更新版本、新增示例并修复漏洞等。 本数据集中的脚本均采用Julia编程语言(Julia)编写,需正确配置运行环境方可正常运行。Julia是一款开源、高层次、高性能的动态编程语言,更多信息及下载资源可访问其官方网站:https://julialang.org/。 以下为各文件的具体说明: - `adiff.jl`:实现前向自动微分所需对偶数代数的核心模块 - `materials.jl`:实现不同材料模型应变能密度函数的模块 - `elements.jl`:实现单元积分规则、整体模型变形能(含拉格朗日乘子)求解以及相关求解器的模块 - `example_01_non_linear_truss.jl`:对应论文第1个示例的Julia脚本,其输出为变形桁架的OpenSCAD(OpenSCAD)模型,用于生成精美可视化图像 - `example_01_non_linear_truss.ipynb`:对应示例1的Jupyter Notebook(Jupyter Notebook)文件 - `example_02_Euler_beams.ipynb`:用于论文第2个示例的Julia脚本 - `example_02_Euler_beams.jl`:用于示例2的Jupyter Notebook文件 - `example_03_plane_stress.ipynb`:对应论文第3个示例的Jupyter Notebook文件 - `example_03_plane_stress.jl`:用于示例3的Julia脚本 - `example_04_AxSymDomain.ipynb`:对应示例4的Notebook文件 - `example_04_AxSymDomain.jl`:用于示例4的Julia脚本 - `example_05_3DSpring.jl`:用于示例5的Julia脚本,该脚本可生成可通过ParaView(ParaView)读取的输出文件 - `Pattern2D03FinerMesh02j.inp`:示例3的输入文件 - `AxSymDomainj.inp`:示例4的输入文件 - `3DSpringHexaj.inp`:示例5的输入文件 - `polyhedron_hedges.scad`:用于生成示例1变形晶格OpenSCAD文件的辅助脚本 - `description.txt`:本说明文件 - `step_to_reproduce.txt`:记录复现所有示例步骤的文件




