-
-
November 6, 2023 at 4:13 amMyunghyun ShinSubscriber
Hi, there.
I am a mechanical engineering student who is studying the implementation of Autodyn subroutines.
I am having difficulty implementing subroutines as parallel processes.
The Autodyn manual states that to implement subroutines as parallel processes, one should use the "MDPP module".
Please refer to the picture below.
As shown in the picture, the manual mentions using "IFPP" and "MYTASK" variables, but I haven't been able to find any relevant sample code related to these instructions.
I would appreciate it if you could explain how to use the "MDPP module", "IFPP and MYTASK variables" to implement a subroutine as a parallel process.
If possible, providing a simple example code along with the explanation would be greatly appreciated.
Thanks and best regards,
Myunghyun Shin
-
November 7, 2023 at 6:25 pmChris QuanAnsys Employee
You don't need to define IFPP and MYTASK in your user subroutines. They are defined when Autodyn starts to solve and are then passed to MDPP. See attached pictures below.
When the box "Activate Parallel Processing" is checked, IFPP = 1. Otherwise IFPP = 0. "MYTASK" is the task number. It is assigned by Autodyn automatically during runtime.
Once an Autodyn user subroutine is integrated into Autodyn user executable, Autodyn will automatically incorporate it into parallel processing scheme. User don't need to do anything while writing the user subroutines.
Furthmore, to start Autodyn with parallel processing, a command of AutodynWrapper.exe or a user-defined configuration file "applfile" is needed. The total number of workers is defined in the command or applfile and is then passed to the module MDPP.
More information about how to use AutodynWrapper.exe can be found from ANSYS HELP in the Section 22.1 Running Autodyn on Windows Platforms under Autodyn User's Manual.
More information about how to use applfile can be found from ANSYS HELP in the Section 3.1.1 Running Autodyn with Intel MPI under Autodyn Parallel Processing Guide.
-
November 8, 2023 at 8:27 amMyunghyun ShinSubscriber
Thanks for you kind respone!
I have an additional question to ask.
In the provided subroutine example, I am studying the modification of the strength model (mdstr_user_1.f90).
In the manual, it is specified that the internal array for effective plastic strain is named "EPS". Please refer to the picture below.
However, in the subroutine code, it appears that the variable "EPST" is being used to retrieve the effective plastic strain. Please refer to the picture below.
Shouldn't we be using the internal array "EPS" to access the effective plastic strain in the subroutine code?
Thanks and best regards,
-
-
November 8, 2023 at 2:01 pmChris QuanAnsys Employee
Yes, it is true that EPS is the effective plastic strain. It is an element variable. It is an array.
EPST from your note is a local variable. It is not an array. It is a scalar and has a single value. See the picture below.
User Subroutine "SOLVE_STR_USER_1" is called for every element automatically by Autodyn. EPST is the Effective Plastic Strain for the current element, i.e., EPST = EPS(current element #).
EPST is used to interpolated plastic strain from the input of material hardenning curve (Yield Stress vs Plastic Strain) to obtain the Yield Stress for the current element.
-
November 9, 2023 at 1:33 amMyunghyun ShinSubscriber
Thank you!
Then, where can I check the list of local value call names (e.g., from EPS to EPST) for all variables?
Is it only possible to use the local value call names mentioned in the commented sections within the subroutine code?
-
-
November 9, 2023 at 2:12 pmChris QuanAnsys Employee
EPS - > EPST is in the subroutine which calls the user subroutine. It's not accessible.
If you want to look at the entire EPS array, you need to use the user subroutine EXEDIT.
-
- The topic ‘Using user subroutine with Autodyn – Parallel Processing Issue’ is closed to new replies.
-
1116
-
468
-
440
-
225
-
201
© 2024 Copyright ANSYS, Inc. All rights reserved.