跳到主要内容

Abaqus

单位系

推荐的三个单位系,分别对应不同尺度的计算模拟:米级、毫米级和微米级。

名称单位系 1单位系 2单位系 3
长度mmmm=103m\mathrm{mm}=10^{-3}mμm=106m\mu\mathrm{m}=10^{-6}m
时间ssssss
质量kgkg103kg10^{3}\,kg106kg10^{6}\,kg
N=kgm/s2N = kg\cdot m/s^{2}N=103kg103m/s2N = 10^{3}kg \cdot 10^{-3}m/s^{2}N=106kg106m/s2N = 10^{6}kg \cdot 10^{-6}m/s^{2}
应力Pa=N/m2\mathrm{Pa} = {N}/{m^{2}}MPa=N/106m2\mathrm{MPa} = {N}/{10^{-6}m^{2}}1012Pa=N/1012m210^{12}\mathrm{Pa} = {N}/{10^{-12}m^{2}}
密度kg/m3{kg}/{m^{3}}1012kg/m310^{12}\,{kg}/{m^{3}}1024kg/m310^{24}\,{kg}/{m^{3}}
能量J=NmJ = N\cdot mmJ=N103m\mathrm{mJ}=N\cdot 10^{-3}mμJ=N106m\mu\mathrm{J}=N\cdot 10^{-6}m
功率W=J/sW={J}/{s}mW=mJ/s\mathrm{mW}={\mathrm{mJ}}/{s}μW=μJ/s\mu\mathrm{W}={\mu\mathrm{J}}/{s}
换热系数W/m2K{W}/{m^{2}\cdot K}mW/mm2K{\mathrm{mW}}/{\mathrm{mm}^{2}\cdot K}μW/μm2K{\mu\mathrm{W}}/{\mu\mathrm{m}^{2}\cdot K}
加速度m/s2{m}/{s^{2}}mm/s2{mm}/{s^{2}}μm/s2{\mu m}/{s^{2}}

abaqus documentation 安装

  1. 选择html和pdf
  2. 选择abaqus web server
  3. 安装完成之后重启电脑
  4. 在开始菜单中查找documentation

书籍推荐

其实看看b站视频也挺好

命令行运行abaqus

abaqus job=xxx datcheck  # 运算Job之前检查
abaqus job=jobname1 或 abaqus job=jobname1 int # 提交Job
# int 代表在命令行窗口显示交互信息
abaqus job=jobname1 double int # 双精度提交
abaqus suspend job=jobname1 int # 任务暂停
abaqus resume job=jobname1 int # 恢复运算
abaqus terminate job=jobname1 int # 结束任务
abaqus job=jobname1 oldjob=jobname2 int # Restart 重启动计算
abaqus cae # cae界面
abaqus viewer # viewer界面
abaqus doc # 帮助文档
abaqus help # 命令行帮助
abaqus job=xxx memory=memory-size # 定义所需的最大内存
abaqus job=jobname user=user.for # 子程序
abaqus job=jobname cpus=4 # 四核并行

在vscode/pycharm中写python脚本不报错

基于https://github.com/liangzulin/abaqus_pycharm的方法。

先下载这个库中的import_file中的所有文件。 找到自己用的python的Lib文件夹, 例如C:\Users\pevoro\anaconda3\Lib\site-packages或者 C:\Users\pevoro\anaconda3\envs\py38\Lib\site-packages这种类型的文件夹。 将import_file文件夹中的所有文件都复制到上面的文件夹中。

再在vscode中使用你的python环境打开abaqus的python脚本,就不会频繁报错了。

scratch directory

abaqus Unable to change the current working directory to C:\Users\xxx\AppData\Local\Temp\

临时修改 Module: Job->job manager-> edit job-> general ->scratch directory

永久修改 修改系统环境变量,将用户变量的TEMP改为C:\TEMP

搭建Debian-abaqus-fortran计算环境

使用了debian9.9和abaqus6.14-2,版本比较老,仅作为参考。

素材

  1. U盘一个

  2. debian-9.9.0-amd64-DVD-1.iso debian-9.9.0-amd64-DVD-2.iso debian-9.9.0-amd64-DVD-3.iso

  3. abaqus6.14-2安装包及.env文件

  4. openmpi-1.8.4.tar.gz

备工作

  1. 使用管理员运行ultraiso,打开debian-9.9.0-amd64-DVD-1.iso,点击启动,选择写入硬盘映像,写入方式选择raw,点击写入,等待完成。

安装Debian注意事项

  1. 为计算机命名时只使用字母和数字,如D20,username:junfan

  2. 安装时domian name空着不填

  3. 安装的时候可以选择拔掉网线,不选择network mirror, 不选择release update

  4. 选择安装Debian desktop environment, Xfce, ssh server, web server

  5. 完成安装,重启电脑

设置下载源为本地DVD镜像

  1. 将DVD-1, DVD-2, DVD-3 三个iso文件复制到新安装的Debian系统中

  2. su 进入管理员模式,输入密码

  3. 创建文件夹用来挂载iso文件,并挂载

    mkdir -p /media/dvd1
    mkdir -p /media/dvd2
    mkdir -p /media/dvd3
    mount -o loop debian-9.9.0-amd64-DVD-1.iso /media/dvd1/
    mount -o loop debian-9.9.0-amd64-DVD-2.iso /media/dvd2/
    mount -o loop debian-9.9.0-amd64-DVD-3.iso /media/dvd3/
  4. 修改 /etc/apt/sources.list 文件,添加dvd库,

    先备份源文件 cp /etc/apt/sources.list /etc/apt/sources.list.bak 然后修改 /etc/apt/sources.list 为如下三行

    deb [trusted=yes] file:///media/dvd1/  stretch contrib main
    deb [trusted=yes] file:///media/dvd2/ stretch contrib main
    deb [trusted=yes] file:///media/dvd3/ stretch contrib main

安装依赖库libjpeg62和libstdc++5和远程ssh,vim等相关依赖库

apt-get update
apt-get install libjpeg62 libstdc++5 ssh openssh-server vim csh gfortran gedit g++ make

安装Abaqus

  1. 新建文件夹 mkdir /usr/simulia

  2. 将abaqus的证书文件夹移动到新建的文件夹中 cp -a license /usr/simulia/

  3. 修改/usr/simulia/license/ABAQUS.lic文件第一行的HOME为你的电脑名称,如D20

  4. mkdir -p /usr/tmp/.flexlm/

  5. Start abaqus License Server

    /usr/simulia/license/lmgrd -c /usr/simulia/license/ABAQUS.lic
  6. mount the .iso file of Abaqus

    create mount point and mount.

    mkdir /mnt/dvd
    mkdir /home/junfan/tempaba
    mount -o loop SIMULIA_ABAQUS_6.14-2_Win64_Linux64.iso /mnt/dvd
    csh
    /mnt/dvd/setup

    临时文件夹选择/home/junfan/tempaba

  7. Install abaqus to /usr/simulia/abaqus

    In type of installation select "ABAQUS Products"

    When asked for License server input for License server 1 (REQUIRED)填写 27011@D20 点击下一步,如果出现“There was a problem constructing the value for the ....license file”,则同样输入27011@D20 安装位置选择/usr/simulia/abaqus/

  8. 试用abaqus。GUI still have some problem. /usr/simulia/abaqus/Commands/abaqus cae

  9. umount iso file

    umount /mnt/dvd
  10. edit ~/.bashrc file

    vim /home/junfan/.bashrc

    add new lines at the end of this file

    alias abaqus='XLIB_SKIP_ARGB_VISUALS=1 /usr/simulia/abaqus/Commands/abaqus'
    alias abaqusl="/usr/simulia/license/lmgrd -c /usr/simulia/license/ABAQUS.lic"
    alias cae="abaqus cae -mesa"

    这样运行abaqus就是打开abaqus,运行abaqusl就是打开证书,cae打开GUI交互界面

修改abaqus环境设置文件,使用gfortran作为编译器

  1. 修改abaqus_v6.env文件

    cp /usr/simulia/abaqus/6.14-2/SMA/site/abaqus_v6.env /usr/simulia/abaqus/6.14-2/SMA/site/~abaqus_v6.env

    更改abaqus_v6.env 中的fortCmd = "ifort" # <-- Fortran compilerfortCmd = "gfortran" # <-- Fortran compiler 更改

    compile_fortran = [fortCmd,
    '-V',
    '-c', '-fPIC', '-auto', '-mP2OPT_hpo_vec_divbyzero=F', '-extend_source',
    '-fpp', '-WB', '-I%I']

    compile_fortran = (fortCmd + ' -c -fPIC -I%I') 更改

    link_sl = [fortCmd,
    '-V',
    '-cxxlib', '-fPIC', '-threads', '-shared',
    '%E', '-Wl,-soname,%U', '-o', '%U', '%F', '%A', '%L', '%B', '-parallel',
    '-Wl,-Bdynamic', '-i-dynamic', '-lifport', '-lifcoremt', '-lmpi']

    为:

    link_sl = (fortCmd + " -gcc-version=%i -fPIC -shared " + "%E -Wl,-soname,%U -o %U %F %A %L %B -Wl,-Bdynamic " + " -lifport -lifcoremt")
  2. vim /usr/simulia/abaqus/6.14-2/SMA/site/abaqus.app 找到"perl"这一行,删掉"SMAExternal/perl" 保存

  3. 测试abaqus verify -user_std

安装openmpi

(这一步或许是不必要的,但是我还是建议这么做。 网上有说更改 abaqus_v6.env中的"mp_mode=THREADS"就可以不使用mpi,但是我没测试过) 在需要进行显式计算explict的时候,修改abaqus_v6.env中为mp_mode=THREADS,可以避免未知错误。

  1. 使用openmpi-1.8.4.tar.gz

  2. 解压并配置

    tar -zxvf openmpi-1.8.4.tar.gz
    cd openmpi-1.8.4
    ./configure --prefix="/usr/local/openmpi"
  3. Build并安装 make -j8 make install 可以在make后加参数-j8, 表示用8核编译

  4. . 添加环境变量

    在/home/junfan/.bashrc文件中添加下列几行

    export PATH="$PATH:/usr/local/openmpi/bin"
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/openmpi/lib/"

    保存后,执行

    ldconfig 打开新的终端,使环境变量生效。

  5. 测试是否安装成功

    mpirun