Hi!
Is it possible to use transient and scanning simulation for different solvers in the same simulation?
I'm trying to carry out a transient simulation as follows:
2 bodied in contact with each other with Mortar BC.
1. StatCurrentSolver,
2. HeatSolver with joule heating. The temperature is increasing with time due to the resistive load
3. ElasticSolver using a UMAT. Here I calculate the thermal expansion due to the increasing temperature. The contact area between the bodies will change due to the change in geometry of the bodies caused by the thermal expansion.
ElasticSolver with UMAT does not have support for transient simulation. In this set-up I don't need a "real" transient simulation for the ElasticSolver. It would be good enough to just calculate a steady state displacement for each temperature level corresponding to each time step.
Any suggestions here?
PS. I have tried to modify ElasticSolve.F90 so that it runs as scanning simulation when the keyword is set to transient in the sif-file. That seems to give reasonable results in a similar simulation as above but without Mortar contact. But together with Mortar boundary, the simulation fails. The error is raised from the Mortar code.
I hope someone can give any directions how I can proceed here?
Best regards Fredrik
mixing transient and scanning
-
- Site Admin
- Posts: 4835
- Joined: 22 Aug 2009, 11:57
- Antispam: Yes
- Location: Espoo, Finland
- Contact:
Re: mixing transient and scanning
Hi
What if you set for the ElasticSolver
If this keyword is positive it overrides the transient nature. The intended use if, for example, to start a simulation with a steady-state solution without need for separate setup. However, It could work here as well. Generally the condition can depend on global variables such as time.
-Peter
What if you set for the ElasticSolver
Code: Select all
Steady State Condition = 1.0
-Peter
-
- Posts: 2327
- Joined: 25 Jan 2019, 01:28
- Antispam: Yes
Re: mixing transient and scanning
With success, I have modified the solver to remove the check for and exit for transient. The issue is the accelerations and velocities are not passed, so if your solution isn't really a dynamic case, this could work.
Re: mixing transient and scanning
Thanks Peter!
With the steady state condition keyword I can run StatCurrentSolver and HeatSolver in transient and ElasticSolver with UMAT in steady state. Exactly was I was asking for. However, the displacement is not evolving from time step to time step. Unfortunately I also get the same error as I got when I was using my modified ElasicSolver with UMAT.
I need to debug a little more to understand what is generating the error. The simulation is failing at time step 6 of 10. At time step 5 the displacement contact velocity and displacement contact slipload starts to show very different values compared to the working set-up without UMAT.
Best regards Fredrik
With the steady state condition keyword I can run StatCurrentSolver and HeatSolver in transient and ElasticSolver with UMAT in steady state. Exactly was I was asking for. However, the displacement is not evolving from time step to time step. Unfortunately I also get the same error as I got when I was using my modified ElasicSolver with UMAT.
I need to debug a little more to understand what is generating the error. The simulation is failing at time step 6 of 10. At time step 5 the displacement contact velocity and displacement contact slipload starts to show very different values compared to the working set-up without UMAT.
Best regards Fredrik
Re: mixing transient and scanning
kevinarden, yes thats the way I modified the ElasicSolver also. I'm not exactly sure how to store the previous displacement.
In scanning mode the previous displacement value is stored acc to
In transient, the previous doesn't seem to be stored in ElasiticSolver. Should I store the previous displacement in
or
Best regards Fredrik
Code: Select all
| 756 previ = 0
| 757 IF (UseUMAT) THEN
|- 758 IF( TransientSimulation ) THEN
||- 759 previ = 3
|| 760 ELSE IF( Scanning ) THEN
||- 761 previ = 1
|| 762 END IF
| 763 END IF
Code: Select all
234 1363 IF (Scanning) StressSol % PrevValues(:,1) = Displacement(:)
Code: Select all
PrevValues(:,1)
Code: Select all
PrevValues(:,3)
-
- Posts: 2327
- Joined: 25 Jan 2019, 01:28
- Antispam: Yes
Re: mixing transient and scanning
I just removed these three lines from the code
IF (UseUMAT .AND. TransientSimulation) THEN
CALL Fatal(Caller, 'UMAT version does not yet support transient simulation')
END IF
IF (UseUMAT .AND. TransientSimulation) THEN
CALL Fatal(Caller, 'UMAT version does not yet support transient simulation')
END IF