Re: [deal.II] UMAT subroutine in dealii.

2018-08-08 Thread Mahesh Prasad

Dear Jean-Paul,

Sorry for the format of my previous post. It was incomplete and I sent it 
by mistake. 
Yes, just last week I did exactly that. Calling the Fortran subroutine from 
C++ and it works. Before moving forward I wanted to know if someone else in 
the community is already working on this.
Anyways, I will now begin working on interfacing the input/output variables.
 
Also, here's a better description of the UMAT input parameters: 
http://www.brown.edu/Departments/Engineering/Courses/En2340/Programming/ABAQUS/Usermat.for

Thank you all for your help.

Best regards,
Mahesh Prasad.
On Wednesday, August 8, 2018 at 3:57:53 PM UTC+2, Jean-Paul Pelteret wrote:
>
> Dear Mahesh,
>
> I guess this is less of a “deal.II” question and more of a C++ question. 
> It is possible to call a Fortran function from C++ code - if you do a 
> google search for “c++ calling fortran routine” you get numerous helpful 
> links showing how it would be done in concept, e.g. 
>
> https://wiki.calculquebec.ca/w/C%2B%2B_:_appels_Fortran/en
> http://www.yolinux.com/TUTORIALS/LinuxTutorialMixingFortranAndC.html
> http://neurophys.wisc.edu/comp/docs/not017/
>
> So since its possible to make such a call, the question is whether or not 
> you are able to provide all of the input data expected by the UMAT. It 
> would be entirely up to you to reproduce the specific FE formulation that 
> leads to this statement of the stress-strain relationship. I guess that 
> providing information for the nonlinear solver state, strain, material 
> parameters, and storage of the internal variables would be somewhat 
> trivial. Its unclear as to what exactly the inputs vs outputs to/from this 
> function are, and what parameters like “ !rotation increment matrix” 
> represent (is this because ABAQUS has elasticity formulation in terms of an 
> objective stress rate?), so I cannot comment further on what you’d 
> nominally be able to provide to the called function.
>
> I hope that this helps you further.
> Best,
> Jean-Paul
>  
>
> On 08 Aug 2018, at 15:18, Mahesh Prasad  > wrote:
>
> Dear Wolfgang,
>
> It is as you mentioned, the STRAIN is provided as an input to the UMAT. 
> UMAT then updates the STRESS and returns it as an output.
> I have attached an image of the UMAT subroutine for your reference. This 
> is a very general outline. Please don't worry about all the parameters 
> which are present in the subroutine definition. 
> The most important parameters are:
> integer ndi!number of stress components 
>   integer nshr   !number of engineering shear stress components 
>   integer ntens  !size of the stress array (ndi + nshr) 
>   integer nstatv !number state variables 
>   integer nprops !number of material constants 
>   integer layer  !layer number 
>   integer kspt   !section point number within the current layer 
>   integer kstep  !step number 
>   integer noel   !element number 
>   integer npt!integration point number 
>   integer kinc   !increment number 
>
> c---
>  
>   real(8) drpldt!jacobian drpl_dt 
>   real(8) dtime !time increment dt 
>   real(8) temp  !temperature at t0 
>   real(8) dtemp !increment of temperature. 
>   real(8) celent!characteristic element length 
>   real(8) sse   !specific elastic strain energy 
>   real(8) spd   !specific plastic dissipation 
>   real(8) scd   !specific creep dissipation 
>   real(8) rpl   !volumetric heat generation per unit time 
>   real(8) pnewdt!dt_next/dt_now 
>
> c---
>  
>   real(8) ddsdde(ntens,ntens)  !jacobian ds_de 
>   real(8) statev(nstatv)   !state variables 
>   real(8) props (nprops)   !material constants  
>   real(8) ddsddt(ntens)!jacobian ds_dt 
>   real(8) drplde(ntens)!jacobian drpl_de 
>   real(8) stress(ntens)!stress tensor 
>   real(8) stran (ntens)!strains at t0 
>   real(8) dstran(ntens)!strain increments 
>   real(8) dfgrd0(3,3)  !deformation gradient at t0 
>   real(8) dfgrd1(3,3)  !deformation gradient at t0+dt 
>   real(8) drot  (3,3)  !rotation increment matrix 
>   real(8) coords(3)!coordinates of this point 
>   real(8) time  (2)!1:step time; 2:total time, At t0 
>   real(8) predef(1)!predefined field variables at t0 
>   real(8) dpred (1)!incr of predefined field vrbs
>
>
> On Wednesday, August 8, 2018 at 6:52:56 AM UTC+2, Wolfgang Bangerth wrote:
>>

Re: [deal.II] UMAT subroutine in dealii.

2018-08-08 Thread Mahesh Prasad
Dear Wolfgang,

It is as you mentioned, the STRAIN is provided as an input to the UMAT. 
UMAT then updates the STRESS and returns it as an output.
I have attached an image of the UMAT subroutine for your reference. This is 
a very general outline. Please don't worry about all the parameters which 
are present in the subroutine definition. 
The most important parameters are:
integer ndi!number of stress components 
  integer nshr   !number of engineering shear stress components 
  integer ntens  !size of the stress array (ndi + nshr) 
  integer nstatv !number state variables 
  integer nprops !number of material constants 
  integer layer  !layer number 
  integer kspt   !section point number within the current layer 
  integer kstep  !step number 
  integer noel   !element number 
  integer npt!integration point number 
  integer kinc   !increment number 
c--- 

  real(8) drpldt!jacobian drpl_dt 
  real(8) dtime !time increment dt 
  real(8) temp  !temperature at t0 
  real(8) dtemp !increment of temperature. 
  real(8) celent!characteristic element length 
  real(8) sse   !specific elastic strain energy 
  real(8) spd   !specific plastic dissipation 
  real(8) scd   !specific creep dissipation 
  real(8) rpl   !volumetric heat generation per unit time 
  real(8) pnewdt!dt_next/dt_now 
c--- 

  real(8) ddsdde(ntens,ntens)  !jacobian ds_de 
  real(8) statev(nstatv)   !state variables 
  real(8) props (nprops)   !material constants  
  real(8) ddsddt(ntens)!jacobian ds_dt 
  real(8) drplde(ntens)!jacobian drpl_de 
  real(8) stress(ntens)!stress tensor 
  real(8) stran (ntens)!strains at t0 
  real(8) dstran(ntens)!strain increments 
  real(8) dfgrd0(3,3)  !deformation gradient at t0 
  real(8) dfgrd1(3,3)  !deformation gradient at t0+dt 
  real(8) drot  (3,3)  !rotation increment matrix 
  real(8) coords(3)!coordinates of this point 
  real(8) time  (2)!1:step time; 2:total time, At t0 
  real(8) predef(1)!predefined field variables at t0 
  real(8) dpred (1)!incr of predefined field vrbs


On Wednesday, August 8, 2018 at 6:52:56 AM UTC+2, Wolfgang Bangerth wrote:
>
> On 08/07/2018 03:31 AM, Mahesh Prasad wrote: 
> > 
> > Thank you for the suggestions. I have already looked through the 
> > "Applications" and found that "PRISMS-Plasticity" is working on similar 
> lines 
> > (Crystal Plasticity FEM). 
> > The nature of the problem is : Multi-scale simulations using Crystal 
> > Plasticity FEM. 
> > 
> > Over the years we have developed the UMAT subroutine that describes our 
> > material models. So, instead of implementing them from scratch in dealii 
> we 
> > would like to have an interface that communicates between the UMAT and 
> > dealii.  So, my question is: Has anyone tried to link the UMAT 
> subroutines 
> > with dealii ? i.e., The UMAT (fortran 90) has to be called at each 
> integration 
> > point. If not, How do I go about linking the fortran code with dealii ? 
>
> Mahesh, 
> since few of us will be familiar with how exactly ABAQUS interfaces with 
> externally written routines, can you explain what these UMAT functions 
> take as 
> input, and which information they return? 
>
> I suspect that they probably receive the strain as input and return the 
> stress 
> as output, but it would be good to know for sure. It may also be that it's 
> the 
> derivative tensor, of course, which may actually be more useful in 
> practice. 
>
> Best 
>   WB 
>
> -- 
>  
> Wolfgang Bangerth  email: bang...@colostate.edu 
>  
> www: http://www.math.colostate.edu/~bangerth/ 
>
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [deal.II] UMAT subroutine in dealii.

2018-08-07 Thread Mahesh Prasad
Dear Jean-Paul,

Thank you for the suggestions. I have already looked through the 
"Applications" and found that "PRISMS-Plasticity" is working on similar 
lines (Crystal Plasticity FEM).
The nature of the problem is : Multi-scale simulations using Crystal 
Plasticity FEM. 

Over the years we have developed the UMAT subroutine that describes our 
material models. So, instead of implementing them from scratch in dealii we 
would like to have an interface that communicates between the UMAT and 
dealii.  So, my question is: Has anyone tried to link the UMAT subroutines 
with dealii ? i.e., The UMAT (fortran 90) has to be called at each 
integration point. If not, How do I go about linking the fortran code with 
dealii ?

Thank you!
Mahesh Prasad.



On Monday, August 6, 2018 at 8:13:23 PM UTC+2, Jean-Paul Pelteret wrote:
>
> Dear Mahesh,
>
> If you browse through both the tutorials 
> <https://dealii.org/9.0.0/doxygen/deal.II/Tutorial.html> and the code-gallery 
> contributions <https://dealii.org/9.0.0/doxygen/deal.II/CodeGallery.html>, 
> you will notice that deal.II is completely agnostic about which finite 
> element formulation you wish to implement and the concept of a material 
> model (constitutive law) associated with the governing equations. So you 
> have complete freedom as to how you would want to implement a material law. 
> There are also a few application frameworks based on deal.II (see the 
> “Applications” tab at the top of the homepage <https://dealii.org/>) that 
> would presumably offer some interface between user defined material models 
> and their framework, but if your interest lies in using one of these codes 
> then you would have to investigate this more deeply yourself.
>
> If you could give more details as to what the nature of the problem that 
> you’re trying to implement is, then maybe someone with experience in this 
> specific topic could share some further insights with you.
>
> Best,
> Jean-Paul
>
> On 06 Aug 2018, at 19:08, Mahesh Prasad  > wrote:
>
> Hello everyone,
>
> I am making a transition from ABAQUS to dealii. But they are many open 
> questions. Among them the most important one is User defined materials.
> I would like to know if anyone has worked / still working in implementing 
> UMAT subroutine within dealii ? 
>
> Best regards,
> Mahesh Prasad.
>
> -- 
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see 
> https://groups.google.com/d/forum/dealii?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to dealii+un...@googlegroups.com .
> For more options, visit https://groups.google.com/d/optout.
>
>
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[deal.II] UMAT subroutine in dealii.

2018-08-06 Thread Mahesh Prasad
Hello everyone,

I am making a transition from ABAQUS to dealii. But they are many open 
questions. Among them the most important one is User defined materials.
I would like to know if anyone has worked / still working in implementing 
UMAT subroutine within dealii ? 

Best regards,
Mahesh Prasad.

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to dealii+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.