Table of Contents
List of computational modules and programs
PMD is divided into several computational modules that provide the programs for the computation of a given class of problems.
Note about linear solvers
The programs marked with an asterisk are available in two variants: standard, that employ the frontal solver only, and alternative, that also employ the parallel sparse direct solver. Alternative programs have the letter A appended to their name (e.g., FEFS → FEFSA, HPLS → HPLSA, etc.).
In one computational run, the same linear solver must be used, selected by the key $\mathtt{KSOL}$ in the input file name.i4
or name.iB
.
Note about 2-D and 3-D problems
The digits 2 and 3 in some programs’ names (e.g., RMD2 and RMD3, HPP2 and HPP3, etc.) distinguishes programs designed for 2-D problems from programs designed for 3-D problems. If the incorrect program in terms of problem dimension is run within the computation, older releases of PMD (up to version 12) will abort with an error.
In newer releases of PMD (version 13 and above) the corresponding pairs of programs are still available for backward compatibility, but they are identical (merged) inside and, therefore, it does not matter which one is actually used within the computation.
The problem dimension is determined automatically at the start of the computation; if the parameter $\mathtt{ITED}\in\{4,5,6,7\}$ or the key $\mathtt{KSS}\ne0$ in the input file name.i1
, a 2-D problem is assumed, otherwise a 3-D problem is assumed.
In this way the majority of problems is identified correctly without any need to modify the input file.
Note about heat transfer solvers
The solution of heat transfer problems is divided between four programs (XT2S, XT2T, XT3S and XT3T), each of which is designed to one combination of problem dimension and type (2-D / 3-D, steady-state / transient). If the incorrect program in terms of problem dimension/type is run within the computation, older releases of PMD (up to version 12) will abort with an error.
In newer releases of PMD (version 13 and above) all four programs are still available for backward compatibility, but they are identical (merged) inside and, therefore, it does not matter which one is actually used within the computation.
The problem dimension is determined in the input file name.i1
(see above) and the problem stationary-ness by the key $\mathtt{KSU}$ in the input file name.iB
.
Heat Transfer module
Program | Function | Input | Protocol |
---|---|---|---|
XRM2* | Process the description of geometric properties, 2-D problems | name.i1 | name.o1 |
XRM3* | Process the description of geometric properties, 3-D problems | name.i1 | name.o1 |
XRPD | Process the description of physical properties and solver control parameters | name.iB | name.oB |
XT2S* | Solve a steady-state 2-D heat transfer problem (Modified Newton-Raphson metod) | name.oT |
|
XT3S* | Solve a steady-state 3-D heat transfer problem (Modified Newton-Raphson metod) | name.oT |
|
XT2T* | Solve a transient 2-D heat transfer problem (Modified Newton-Raphson metod) | name.oT |
|
XT3T* | Solve a transient 3-D heat transfer problem (Modified Newton-Raphson metod) | name.oT |
Elastostatics module
Program | Function | Input | Protocol |
---|---|---|---|
RMD2* | Process the description of geometric properties, 2-D problems | name.i1 | name.o1 |
RMD3* | Process the description of geometric properties, 3-D problems | name.i1 | name.o1 |
RPD2 | Process the description of physical properties, 2-D problems | name.i2 | name.o2 |
RPD3 | Process the description of physical properties, 3-D problems | name.i2 | name.o2 |
SRH2 | Calculate stiffness matrices of elements and right-hand side vectors, 2-D problems | name.i3 | name.o3 |
SRH3 | Calculate stiffness matrices of elements and right-hand side vectors, 3-D problems | name.i3 | name.o3 |
FEFS* | Solve a linear elastostatic problem (Frontal metod) | name.i4 | name.o4 |
STR2 | Calculate strains and stresses, 2-D problems | name.i5 | name.o5 |
STR3 | Calculate strains and stresses, 3-D problems | name.i5 | name.o5 |
Dynamics module
This module also requires the programs of the Elastostatics module.
Program | Function | Input | Protocol |
---|---|---|---|
HMOT | Calculate mass matrices of elements | name.iM | name.oM |
HCRE | Calculate damping matrices of elements (Rayleigh damping) | name.iC | name.oC |
HFRO | Factorize the effective global stiffness matrix for dynamic solvers (Frontal method) | name.iR | name.oR |
HEIG* | Solve a generalized eigenvalue problem (Subspace iteration method) | name.iE | name.oE |
HFRQ | Print normalized eigenvectors and eigenfrequencies | name.iF | name.oF |
HMOD* | Solve a dynamic problem (Modal superposition method) | name.iD | name.oD |
HNEW | Solve a dynamic problem (Direct integration method) | name.iW | name.oW |
Nonlinear module
This module also requires the programs of the Elastostatics module.
Program | Function | Input | Protocol |
---|---|---|---|
HPP2 | Prepare data for nonlinear solvers, 2-D problems | name.iP | name.oP |
HPP3 | Prepare data for nonlinear solvers, 3-D problems | name.iP | name.oP |
HPLS* | Solve a nonlinear static problem (BFGS method) | name.iL | name.oL |
HDYN | Solve a nonlinear dynamic problem (Central difference method) | name.iN | name.oN |
Stability module
This module also requires the programs of the Elastostatics module and Dynamics module.