A package for writing the ABAQUS input files directly using julia interface.
ABAQUS is a general-purpose computational tool to perform finite element analysis, but this package is designed (at least now) to analyse certain classes of problems.
At present, .inp files are wrritten for the following applications
- Homgenization of RVE with the following features
- Periodic boundary conditions
- Fibres with cross-sections as supported by UnitCellModelling.jl
Before starting installation, ensure that julia is added to the path. To check this, execute
juliain terminal or command prompt. If you get any error, thenjuliais not added to path properly. You can follow these steps for addingjuliato the path.
From command prompt run install_maif.jl as
julia install_maif.jlThis will install the all the necessary packages and MakeAbaqusInputFile.jl at the end.
Note: If you want to use different
gmsh, please change accordingly ininstall_maif.jlfile. But, it is recommended to keep it unchanged as in some version, we found that mesh periodicity is failing.
See tutorials directory at the root of this package. For example, ABAQUS input file for homogenization of fibre-reinforced composites using 3D RVE can be prepared using /tutorials/RVE_3D/prep_inp_file.jl.
using MakeAbaqusInputFile
include("/tutorials/RVE_3D/rve_inp_options.jl")
incl_data = Dict("CIRCLE" => [0.0 0.0 0.25])
bbox = (-0.5, -0.5, -0.1, 0.5, 0.5, 0.1,)
write_3D_rve_inp(
bbox,
incl_data;
options=INP_FILE_OPTIONS
)write_3D_rve_inp() takes the following arguments
-
bboxbounding box of RVE asTupleof sixFloat64values. It should be in the form of(x_min, y_min, z_min, x_max, y_max, z_max). -
incl_datais a Julia dictionary wherein key-value pairs are ofStringandMatrix{Float64}type. Keys is a fibre cross-section shape identifier and values are inclusion's positional information. The following table lists the possible shape identifiers and theur values.Inclusion shape Identifier Data Matrix Representation Data matrix shape CIRCLE [x | y | radius](n, 3) CAPSULE [x | y | \theta | smjx | smnx](n, 5) ELLIPSE [x | y | \theta | smjx | smnx](n, 5) RECTANGLE [x | y | \theta | smjx | smnx | c_radius](n, 6) CSHAPE [x | y | \theta | ro ri | alpha](n, 6) RPOLYGON [x | y | \theta | side_len | c_radius | num_sides](n, 6) NLOBE [x | y | \theta | ro | lobe_radius | num_lobes](n, 6) nSTAR [x | y | \theta | ro | rb | rt | rbf | num_tips](n, 8) Note:
smjxandsmnxare semi-major and semi-minor axes lengths. Will update the complete details of geometries soon. -
optionsis a Julia dictionary. Here,INP_FILE_OPTIONSis defined inrve_inp_options.jlthat is placed in the same directory asprep_inp_file.jl.INP_FILE_OPTIONScontains user options which overwrite the default options. Detailed explainations of each options is provided as comment in the same file. Change the values in this copy of options as you want in your case. If you have messed up this user options file while editing, you can get a fresh copy of default options here.
- Improvise the documentation
- Add provision for writing
.bator.shfiles to automate running with abaqus