FEAP User Forum

FEAP => Programming => Topic started by: anshulfy on December 09, 2016, 04:48:23 AM

Title: Critical time step in user element for explicit time integration
Post by: anshulfy on December 09, 2016, 04:48:23 AM
Dear all,

I am writing a user element for coupled thermo-hyperelastic analysis. I will be using explicit scheme to solve momentum equation. I want to use automatic time stepping. How can I define the critical time step for user element? Do I need to use user macro for it?

Thanks,
Anshul
Title: Re: Critical time step in user element for explicit time integration
Post by: Prof. R.L. Taylor on December 09, 2016, 08:19:11 AM
The current release of feap does not have any computation for critical time steps in explicit solution.

You will have to write a user macro that computes the time step from the current solution.  A simple scheme is to compute nodal spacing in elements and base the dt on the minimum and its associated wave speed.  There are more sophisticated schemes but this should be fairly easy to implement and test.
Title: Re: Critical time step in user element for explicit time integration
Post by: anshulfy on December 09, 2016, 09:45:21 AM
Dear Prof. Taylor,

Thanks for your reply.

Anshul
Title: Re: Critical time step in user element for explicit time integration
Post by: anshulfy on December 16, 2016, 10:48:31 AM
Dear Prof. Taylor,

As per your suggession, I calculate the critical time step for each element in user element routine and save it to history variable. Then using macro I calculate the minimum 'dt' of all elements and update 'dt'. Below is the code.
Code: [Select]
        dt = hr(nh3)
        elm = 1
        do ii=1,numel-1
          if (dt.le.hr(nh3 +ii)) then
             dt = dt
             elm = ii + 1
          else
             dt = hr(nh3 + ii)
          endif
           
        end do
        write(*,*),'Element with Min. Time Increment:', ELM

And here are my solution commands
Code: [Select]
BATCh
  dt,,1e-7
  LOOP,,10
    TIME,,1e-3
    PART,,1
      TRAN CENTRAL
      MASS, LUMP
      FORM Explicit
    PART,,2
        TANG,,1
    USDT        ! Critical time calculation macro
  NEXT inter
END
In the first step I use a small 'dt' and from second step I use 'dt' calculated in the macro. I see the code working and 'dt' updating in the second step.

I also use proportional load table to apply displacement. From 2nd step my proportional load is not calculated correctly an Total proportional load become equal to 1. Can you please suggest me where else will I need to update 'dt' to calculate correct proportional load factor?

Thanks,
regards,
Anshul
Title: Re: Critical time step in user element for explicit time integration
Post by: Prof. R.L. Taylor on December 16, 2016, 01:48:31 PM
Hard to tell what is happening.  When you compute the critical time and store the dt the proportional load should be updated when you issue the next TIME command.  What  does the value of DT become when do this?  The one you want?  All the steps take place in the pmacr2.f routine and you will have to see what is happening there.
Title: Re: Critical time step in user element for explicit time integration
Post by: anshulfy on December 17, 2016, 01:18:20 AM
Dear Prof. Taylor,

I am sorry, everything is working fine. It is in partition 2, where proportional load=1 is printed in Output file. I misunderstood it.

Thanks for your reply.

regards,
Anshul