User programmable features are tools you can use to write your own routines. Using UPFs, you can tailor the Mechanical APDL program to your organization's needs. For instance, you may need to define a new material behavior, a special element, a contact interfacial model, or a modified failure criterion for composites.
UPFs provide the following capabilities:
To read information into or retrieve information from the Mechanical APDL database, you can create subroutines and either link them into the program or use them in the external command feature (see Appendix A: Creating External Commands for Linux for more information about external commands). If you link these subroutines into Mechanical APDL, you are limited to 10 database access commands. Such commands, created through either method, operate at all levels of program operation, including the begin, preprocessor, general postprocessor, time-history postprocessor, and solution levels. For more information about accessing the database, see Accessing the Mechanical APDL Database.
Some UPF subroutines enable you to specify various types of loads, including BF or BFE loads, pressures, convections, heat fluxes, and charge densities. These routines are described under Subroutines for Customizing Loads.
Some UPF subroutines enable you to modify and monitor existing elements. For details, see Subroutines for Modifying and Monitoring Existing Elements.
Some UPF subroutines enable you to define the following material properties: plasticity, creep, swelling law, viscoplasticity, hyperelasticity, and layered element failure criteria. To see inputs and outputs for these routines, see Subroutines for Customizing Material Behavior.
For analyses involving contact, another set of UPF subroutines enables you to define contact properties, friction models, and interaction behaviors. To see inputs and outputs for these routines, see Subroutines for Customizing Contact Interfacial Behavior.
Several sets of UPFs enable you to define new elements and to adjust the nodal orientation matrix. See Creating a New Element for more information.
You can call Mechanical APDL as a subroutine in a program you have written. To learn how, see Running Mechanical APDL as a Subroutine.