diff --git a/docs/Scientific_Computing/Supported_Applications/ABAQUS.md b/docs/Scientific_Computing/Supported_Applications/ABAQUS.md index 2dd6407c8..d5d287eb3 100644 --- a/docs/Scientific_Computing/Supported_Applications/ABAQUS.md +++ b/docs/Scientific_Computing/Supported_Applications/ABAQUS.md @@ -8,6 +8,7 @@ tags: - gpu - mpi - omp +- fea title: ABAQUS vote_count: 2 vote_sum: 0 @@ -15,21 +16,9 @@ zendesk_article_id: 212457807 zendesk_section_id: 360000040076 --- +A list of ABAQUS commands can be found with: - -[//]: <> (REMOVE ME IF PAGE VALIDATED) -[//]: <> (vvvvvvvvvvvvvvvvvvvv) -!!! warning - This page has been automatically migrated and may contain formatting errors. -[//]: <> (^^^^^^^^^^^^^^^^^^^^) -[//]: <> (REMOVE ME IF PAGE VALIDATED) - - - -A list of commands can be found with: - -``` sl +``` sh abaqus help ``` @@ -38,7 +27,8 @@ can provide significant speedup to your computations, however hyperthreaded CPUs will use twice the number of licence tokens. It may be worth adding `#SBATCH --hint nomultithread` to your slurm script if licence tokens are your main limiting factor. -!!! prerequisite Tips + +!!! note Required ABAQUS licences can be determined by this simple and intuitive formula `⌊ 5 x N``0.422`` ⌋` where `N` is number of CPUs. @@ -51,88 +41,72 @@ parameter `academic=TEACHING` or `academic=RESEARCH` in a relevant Not all solvers are compatible with all types of parallelisation. -| | | | | | -|-------------------|--------------------|------------------|---------------|----------------| -| | Element operations | Iterative solver | Direct solver | Lanczos solver | -| `mp_mode=threads` | ✖ | ✔ | ✔ | ✔ | -| `mp_mode=mpi` | ✔ | ✔ | ✖ | ✖ | -!!! prerequisite Note +| | | | | | +|-------------------|--------------------|-----------|--------|---------| +| | Element operations | Iterative | Direct | Lanczos | +| `mp_mode=threads` | ✖ | ✔ | ✔ | ✔ | +| `mp_mode=mpi` | ✔ | ✔ | ✖ | ✖ | + +!!! warning If your input files were created using an older version of ABAQUS you will need to update them using the command, - ``` sl + ``` sh abaqus -upgrade -job new_job_name -odb old.odb ``` or - ``` sl + ``` sh abaqus -upgrade -job new_job_name -inp old.inp ``` - -
Serial-- For when only one CPU is required, generally as part of -an job -array. -
|
-
|
-
Shared Memory-- mp_mode=threads
-Uses a nodes shared memory for communication. -May have a small speedup compared to MPI when using a low number of -CPUs, scales poorly. Needs significantly less memory than MPI. -Hyperthreading may be enabled if using shared memory but it is not -recommended. |
-
|
-
UDF-- Shared memory run with user defined function (fortran or C). + +## Examples + +=== Serial + For when only one CPU is required, generally as part of +a [job array](https://support.nesi.org.nz/hc/en-gb/articles/360000690275-Parallel-Execution#t_array) + ``` + #!/bin/bash -e + #SBATCH --job-name ABAQUS-serial + #SBATCH --time 00:05:00 # Walltime + #SBATCH --cpus-per-task 1 + #SBATCH --mem 1500 # total mem + module load ABAQUS/{{applications.ABAQUS.machines.mahuika.versions | last}} +abaqus job="propeller_s4rs_c3d8r" verbose=2 interactive +=== "Shared Memory" + `mp_mode=threads` + Uses a nodes shared memory for communication. + May have a small speedup compared to MPI when using a low number of + CPUs, scales poorly. Needs significantly less memory than MPI. + Hyperthreading may be enabled if using shared memory but it is not + recommended. + + ```sl + #!/bin/bash -e + #SBATCH --job-name ABAQUS-Shared + #SBATCH --time 00:05:00 # Walltime + #SBATCH --cpus-per-task 4 + #SBATCH --mem 2G # total mem + module load ABAQUS/{{applications.ABAQUS.machines.mahuika.versions}} + abaqus job="propeller_s4rs_c3d8r verbose=2 interactive \ + cpus=${SLURM_CPUS_PER_TASK} mp_mode=threads + +=== "UDF" +Shared memory run with user defined function (fortran or C).
Function will be compiled at start of run. You may need to chance the function suffix if you usually compile -on windows. |
-
|
@@ -245,4 +219,4 @@ rm "abaqus_v6.env"
*Note: Hyperthreading off, testing done on small mechanical FEA model.
-Results highly model dependant. Do your own tests.*
\ No newline at end of file
+Results highly model dependant. Do your own tests.*