![](https://secure.gravatar.com/avatar/c1507e5a37daa8f5a901d860466fb905.jpg?s=120&d=mm&r=g)
Hi,
I am quite new in the software and find it both useful and at the moment confusing. I have a user material (UMAT) written in Fortran for Abaqus and I would like to know if it is possible to wrap it into sfepy. As the software is highly object oriented, it is not easy to follow the existing examples, so that one can create a new problem and solve it using sfepy. All I need is to find out how to obtain the strain tensor or the deformation gradient tensor so that I can pass it to my material update routine to update the stresses and the material Jacobian tensors and at the end of the routine pass it to sfepy to calculate the force and the element Jacobian matrix.
I will appreciate any hint on this issue.
Thanks.
Hadi
![](https://secure.gravatar.com/avatar/27f6b03a726ccff3f7a5007b1df6bf8c.jpg?s=120&d=mm&r=g)
Hi Hadi,
I do not know Abaqus, so I am not sure what you mean. Are you solving an elasticity problem (small or large deformation?) with some material nonlinearity? As for obtaining the strain, see get_pars() function in [1] - that might help.
r. [1] http://sfepy.org/doc-devel/examples/linear_elasticity/material_nonlinearity....
On 07/08/2013 07:03 PM, Hadi Seyed Hosseini wrote:
Hi,
I am quite new in the software and find it both useful and at the moment confusing. I have a user material (UMAT) written in Fortran for Abaqus and I would like to know if it is possible to wrap it into sfepy. As the software is highly object oriented, it is not easy to follow the existing examples, so that one can create a new problem and solve it using sfepy. All I need is to find out how to obtain the strain tensor or the deformation gradient tensor so that I can pass it to my material update routine to update the stresses and the material Jacobian tensors and at the end of the routine pass it to sfepy to calculate the force and the element Jacobian matrix.
I will appreciate any hint on this issue.
Thanks.
Hadi
![](https://secure.gravatar.com/avatar/75151d6b2dfc8047688c0723f6b8960c.jpg?s=120&d=mm&r=g)
Hi R,
On Tuesday, 9 July 2013 14:48:51 UTC+5:30, Robert Cimrman wrote:
Hi Hadi,
I do not know Abaqus, so I am not sure what you mean.
Abaqus has options like user material (UMAT - User subroutine to define a material's mechanical behavior) and user elements that user can define by writing it in fortran using specific variables which can be coupled to run with the solver.
Are you solving an
elasticity problem (small or large deformation?) with some material nonlinearity?
As for obtaining the strain, see get_pars() function in [1] -
that might help.
Abaqus has a python interface so it might be possible, but I have no clue how to it can be done as UMAT and UEL are tightly coupled with the software and if there is a way then you have to make the entire abaqus communicate with sfepy. The support forum of Abaqus regarding subroutine is very bad so you may try posting in http://www.linkedin.com/groups/ABAQUS-User-Subroutine-Interface-3164622/abou... to obtain a solution to calculate the strain tensor or the deformation gradient tensor in Abaqus itself. See this example http://sfepy.org/doc-devel/examples/linear_elasticity/material_nonlinearity...., it might help you if you want to rewrite it in sfepy.
Ankit
r. [1]
http://sfepy.org/doc-devel/examples/linear_elasticity/material_nonlinearity....
On 07/08/2013 07:03 PM, Hadi Seyed Hosseini wrote:
Hi,
I am quite new in the software and find it both useful and at the moment confusing. I have a user material (UMAT) written in Fortran for Abaqus and I would like to know if it is possible to wrap it into sfepy. As the software is highly object oriented, it is not easy to follow the existing examples, so that one can create a new problem and solve it using sfepy. All I need is to find out how to obtain the strain tensor or the deformation gradient tensor so that I can pass it to my material update routine to update the stresses and the material Jacobian tensors and at the end of the routine pass it to sfepy to calculate the force and the element Jacobian matrix.
I will appreciate any hint on this issue.
Thanks.
Hadi
![](https://secure.gravatar.com/avatar/c1507e5a37daa8f5a901d860466fb905.jpg?s=120&d=mm&r=g)
Hi,
Thank you for your replies. Abaqus UMAT is in fact a material update routine providing an interface to implement the constitutive equations of a specific problem into the FE software Abaqus. In this subroutine, the inputs are strain tensor for the increment and the strain tensor for the beginning of the current increment, the deformation gradient tensor etc. The UMAT routine then updates the stress tensor and the corresponding material Jacobian for the end of the current increment at each integration point. The UMAT routine is normally written in Fortran.
In my case, I deal with a highly nonlinear elasto viscoplastic material behavior.
Best,
Hadi
![](https://secure.gravatar.com/avatar/c1507e5a37daa8f5a901d860466fb905.jpg?s=120&d=mm&r=g)
Hi Robert,
Abaqus uses an updated Lagrange but this is not mandatory for me. I can use a total Lagrange of course, my material update routine updates the stress based on the increment in strains, we can have it in total Lagrange as well. Attached, you'll find an Abaqus UMAT I have written for J2 plasticity. This could give you an insight how an Abaqus UMAT works.
Thanks for looking into this.
Cheers,
Hadi
participants (3)
-
Ankit Mahato
-
Hadi Seyed Hosseini
-
Robert Cimrman