Abaqus subroutine, why outprint happens twice per interation

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Abaqus subroutine, why outprint happens twice per interation

Gustav
Hi,

In my Fortran code I use the write(7,*) function, i.e. outprint to the .msg-file, in every iteration.
The requested output seems always to be written out twice per iteration though. Why?
What is the difference between the first and second outprint?

At first I thought that the first outprint was the same as the last outprint in the previous interation/increment but it doesn't seem to be that way. I have the outprint line in the beginning in my code, and things that should be, for instance, zero in the outprint is not. Has some sort of full calculation already been performed by Abaqus in the current iteration before the first outprint happens?

Very grateful for an explanation.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprint happens twiceper interation

Abaqus Users mailing list
Take a look at the documentation for the subroutine(s) you’re using.  Most likely the subroutine is called twice per iteration (once for assembly of equations, and once for calculation of derived values).

Regards,

Dave Lindeman
Lead Research Specialist
SEMS Research Laboratory
3M Center 235-3G-08
St. Paul, MN 55144
651-733-6383

From: [hidden email] [mailto:[hidden email]]
Sent: Saturday, June 03, 2017 8:04 AM
To: [hidden email]
Subject: [EXTERNAL] [Abaqus] Abaqus subroutine, why outprint happens twice per interation



Hi, In my Fortran code I use the write(7,*) function, i.e. outprint to the .msg-file, in every iteration. The requested output seems always to be written out twice per iteration though. Why? What is the difference between the first and second outprint? At first I thought that the first outprint was the same as the last outprint in the previous interation/increment but it doesn't seem to be that way. I have the outprint line in the beginning in my code, and things that should be, for instance, zero in the outprint is not. Has some sort of full calculation already been performed by Abaqus in the current iteration before the first outprint happens? Very grateful for an explanation. -





3M security scanners have not detected any malicious content in this message.
Click here<https://spam.mmm.com:443/pem/pages/digestProcess/digestProcess.jsf?content=aedaaa864ecbae94f3549cc2544c918b6295ad1364cf81c6a0127ffea404f992c6c4ff5fb22097b592aab29dac82584f30f60c161a797f8d8d8a621478a2f25250f75f3a4b570e12125b08ef0dd8e5d1dbc7a045714a146255659761471276b985c737a3334ed90b6705769117fc82ea5ab5fa738fd1cf5996ff2da06effaf641f2bbf8de7d08ded> to report this email as spam







[Non-text portions of this message have been removed]


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Abaqus subroutine, why outprint happens twice per interation

Abaqus Users mailing list
In reply to this post by Gustav
It depends on which subroutine you are looking at. Some of them are
called twice per iteration, once at the beginning of the calculation,
once at the end.


How often and at what stages a routine is called is stated in the subroutine manual.


> Hi, In my Fortran code I use the write(7,*) function, i.e. outprint to the .msg-file, in every iteration. The requested output seems always to be written out twice per iteration though. Why? What is the difference between the first and second outprint? At first I thought that the first outprint was the same as the last outprint in the previous interation/increment but it doesn't seem to be that way. I have the outprint line in the beginning in my code, and things that should be, for instance, zero in the outprint is not. Has some sort of full calculation already been performed by Abaqus in the current iteration before the first outprint happens? Very grateful for an explanation. -
>
>
> ------------------------------------
> Posted by: Gustav <[hidden email]>
> ------------------------------------
>
> Community email addresses:
>  Post message: [hidden email]
>  Subscribe:    [hidden email]
>  Unsubscribe:  [hidden email]
>  List owner:   [hidden email]
>
> Shortcut URL to this page:
>  http://groups.yahoo.com/group/Abaqus
> ------------------------------------
>
> Yahoo Groups Links
>
>
>
>


                    Priv.-Doz. Dr. Martin Bäker
                    Institut für Werkstoffe
                    Technische Universität Braunschweig
                    Langer Kamp 8
                    38106 Braunschweig
                    Germany
                    Tel.: 00-49-531-391-3065
                    Fax   00-49-531-391-3058
                    e-mail <[hidden email]>
    http://www.tu-braunschweig.de/ifw/institut/mitarbeiter/baeker
                  http://www.scienceblogs.de/hier-wohnen-drachen


[Non-text portions of this message have been removed]


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprint happens twiceper interation

Gustav
In reply to this post by Abaqus Users mailing list
I'm using HETVAL. And I want to save values to be used in the next iteration/increment so I also use the "save" function for some vectors. Using "save" I thought that the values should be the same as for the previous iteration/increment.  But even though I place write(7,*) before any code with update of vectors, it still prints vectors with ner values. I experience that the assembly of equations fills my vectors with values which are derived further down in the code even though I don't want it to.

And that's why I'm a bit uncertain of what the first out print really is.


"Take a look at the documentation for the subroutine(s) you’re using.  Most likely the subroutine is called twice per iteration (once for assembly of equations, and once for calculation of derived values).

Regards,

Dave Lindeman
Lead Research Specialist
SEMS Research Laboratory
3M Center 235-3G-08
St. Paul, MN 55144
651-733-6383"

From: [hidden email] [mailto:[hidden email]]
Sent: Saturday, June 03, 2017 8:04 AM
To: [hidden email]
Subject: [EXTERNAL] [Abaqus] Abaqus subroutine, why outprint happens twice per interation



Hi, In my Fortran code I use the write(7,*) function, i.e. outprint to the .msg-file, in every iteration. The requested output seems always to be written out twice per iteration though. Why? What is the difference between the first and second outprint? At first I thought that the first outprint was the same as the last outprint in the previous interation/increment but it doesn't seem to be that way. I have the outprint line in the beginning in my code, and things that should be, for instance, zero in the outprint is not. Has some sort of full calculation already been performed by Abaqus in the current iteration before the first outprint happens? Very grateful for an explanation. -





3M security scanners have not detected any malicious content in this message.
Click here<https://spam.mmm.com:443/pem/pages/digestProcess/digestProcess.jsf?content=aedaaa864ecbae94f3549cc2544c918b6295ad1364cf81c6a0127ffea404f992c6c4ff5fb22097b592aab29dac82584f30f60c161a797f8d8d8a621478a2f25250f75f3a4b570e12125b08ef0dd8e5d1dbc7a045714a146255659761471276b985c737a3334ed90b6705769117fc82ea5ab5fa738fd1cf5996ff2da06effaf641f2bbf8de7d08ded> to report this email as spam







[Non-text portions of this message have been removed]

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprint happenstwiceper interation

Abaqus Users mailing list
Are you printing out values that are passed into the subroutine through the CALL statement?  Again, the documentation will describe how the value passed into the subroutine should be interpreted.  If you want to store values between subroutine calls, you should use a local, static variable (i.e., one that’s defined within the subroutine).  Also, HETVAL is used to process many elements/integration points, but the element number and integration point number are not passed in.  Therefore, if you’re trying to store an element-specific value, it will be difficult.  You’ll need to define a predefined field variable (which will be passed in to the subroutine through PREDEF) to define a unique ID number for each element/integration point (i.e., an index in your storage array).  Perhaps the values your seeing in your print output are due to the fact that the calculations have already been performed for one integration point before the subroutine is called for the next point.

Regards,

Dave Lindeman
Lead Research Specialist
SEMS Research Laboratory
3M Center 235-3G-08
St. Paul, MN 55144
651-733-6383

From: [hidden email] [mailto:[hidden email]]
Sent: Wednesday, June 07, 2017 1:51 PM
To: [hidden email]
Subject: [EXTERNAL] [Abaqus] RE: Abaqus subroutine, why outprint happens twiceper interation



I'm using HETVAL. And I want to save values to be used in the next iteration/increment so I also use the "save" function for some vectors. Using "save" I thought that the values should be the same as for the previous iteration/increment. But even though I place write(7,*) before any code with update of vectors, it still prints vectors with ner values. I experience that the assembly of equations fills my vectors with values which are derived further down in the code even though I don't want it to. And that's why I'm a bit uncertain of what the first out print really is. "Take a look at the documentation for the subroutine(s) you’re using. Most likely the subroutine is called twice per iteration (once for assembly of equations, and once for calculation of derived values). Regards, Dave Lindeman Lead Research Specialist SEMS Research Laboratory 3M Center 235-3G-08 St. Paul, MN 55144 651-733-6383" From: Abaqus@ [mailto:Abaqus@] Sent: Saturday, June 03, 2017 8:04 AM To: Abaqus@ Subject: [EXTERNAL] [Abaqus] Abaqus subroutine, why outprint happens twice per interation Hi, In my Fortran code I use the write(7,*) function, i.e. outprint to the .msg-file, in every iteration. The requested output seems always to be written out twice per iteration though. Why? What is the difference between the first and second outprint? At first I thought that the first outprint was the same as the last outprint in the previous interation/increment but it doesn't seem to be that way. I have the outprint line in the beginning in my code, and things that should be, for instance, zero in the outprint is not. Has some sort of full calculation already been performed by Abaqus in the current iteration before the first outprint happens? Very grateful for an explanation. - 3M security scanners have not detected any malicious content in this message. Click here<https://spam.mmm.com:443/pem/pages/digestProcess/digestProcess.jsf?content=aedaaa864ecbae94f3549cc2544c918b6295ad1364cf81c6a0127ffea404f992c6c4ff5fb22097b592aab29dac82584f30f60c161a797f8d8d8a621478a2f25250f75f3a4b570e12125b08ef0dd8e5d1dbc7a045714a146255659761471276b985c737a3334ed90b6705769117fc82ea5ab5fa738fd1cf5996ff2da06effaf641f2bbf8de7d08ded> to report this email as spam [Non-text portions of this message have been removed]





3M security scanners have not detected any malicious content in this message.
Click here<https://spam.mmm.com:443/pem/pages/digestProcess/digestProcess.jsf?content=aedaaa864ecbae94d7569adda043bc9686161f85a970a9e180d5ba6012e216cac6c4ff5fb22097b592aab29dac82584f30f60c161a797f8d8d8a621478a2f25250f75f3a4b570e12125b08ef0dd8e5d1dbc7a045714a146255659761471276b985c737a3334ed90b6705769117fc82eafadc40e013dc5daf96ff2da06effaf641f2bbf8de7d08ded> to report this email as spam







[Non-text portions of this message have been removed]


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprint happenstwiceper interation

Gustav
Dave, thanks again for your answer. I'm using USDFLD to pass current integration point value and element number in to HETVAL via STATEV. It should work, at least as far as I understand the documentation.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprint happenstwiceper interation

Abaqus Users mailing list
Note that you can also tranfer information between routines using Fortran COMMON blocks, if necessary. > Dave, thanks again for your answer. I'm using USDFLD to pass current integration point value and element number in to HETVAL via STATEV. It should work, at least as far as I understand the documentation. > > > ------------------------------------ > Posted by: Gustav <[hidden email]> > ------------------------------------ >
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

RE: Abaqus subroutine, why outprinthappenstwiceper interation

Abaqus Users mailing list
In reply to this post by Gustav
Yes, that should work. Regards, Dave Lindeman Lead Research Specialist SEMS Research Laboratory 3M Center 235-3G-08 St. Paul, MN 55144 651-733-6383 From: [hidden email] [mailto:[hidden email]] Sent: Saturday, June 10, 2017 10:31 AM To: [hidden email] Subject: [EXTERNAL] [Abaqus] RE: Abaqus subroutine, why outprint happenstwiceper interation Dave, thanks again for your answer. I'm using USDFLD to pass current integration point value and element number in to HETVAL via STATEV. It should work, at least as far as I understand the documentation.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Abaqus subroutine, why outprint happens twice per interation

Abaqus Users mailing list
In reply to this post by Gustav
Hi dear Gustav
I have to modeled a weled column to beam connection in abaqus.
for use the Goldak's heat source, in need to write that relation's SUBROUTINE in Fortran program. But i dont know very much about that's
 do you write Subroutin for Abaqus?such as DFLUX?
 if yes plz help me
thank you
 

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Abaqus subroutine, why outprint happens twice per interation

Gustav
With the subroutine HETVAL you can write your own heat sources. It takes, among other things, the integration point temperature ( TEMP(1) ) as an input. With FLUX(1) you can return the heat source to the analysis.

For instance FLUX(1)=something*TEMP(1)
return

You can find the frame for HETVAL written in the Abaqus manual. Just add the equation you want.

If you need more than the standard inputs to HETVAL you can include data from other subroutines, for instance with the subroutine USDFLD you can include element number, integration point number, time, increment and so on using STATEV which is passed into HETVAL.

Note that you need some things in the main input-file in order to activate the subroutines. In my case I use
the cards
*USER DEFINED FIELD
*DEPVAR
*HEAT GENERATION
*initial conditions, type=field

Its kind a hard to explain everything here but the manual is quite good. Remember that the subroutines are calculated one integration point at a time. And that you need to use the Fortran command "save" IF you want to save data between the calculation of each integration point. Hopefully you have someone around you that knows Fortran.

Good luck
Loading...