mixing transient and scanning

Numerical methods and mathematical models of Elmer
Post Reply
FredrikR
Posts: 11
Joined: 08 Aug 2023, 13:49
Antispam: Yes

mixing transient and scanning

Post by FredrikR »

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
raback
Site Admin
Posts: 4835
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: mixing transient and scanning

Post by raback »

Hi

What if you set for the ElasticSolver

Code: Select all

Steady State Condition = 1.0
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
kevinarden
Posts: 2327
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: mixing transient and scanning

Post by kevinarden »

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.
FredrikR
Posts: 11
Joined: 08 Aug 2023, 13:49
Antispam: Yes

Re: mixing transient and scanning

Post by FredrikR »

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
FredrikR
Posts: 11
Joined: 08 Aug 2023, 13:49
Antispam: Yes

Re: mixing transient and scanning

Post by FredrikR »

kevinarden, yes thats the way I modified the ElasicSolver also. I'm not exactly sure how to store the previous displacement.

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
In scanning mode the previous displacement value is stored acc to

Code: Select all

234 1363         IF (Scanning) StressSol % PrevValues(:,1) = Displacement(:)
In transient, the previous doesn't seem to be stored in ElasiticSolver. Should I store the previous displacement in

Code: Select all

PrevValues(:,1) 
or

Code: Select all

PrevValues(:,3)
Best regards Fredrik
kevinarden
Posts: 2327
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: mixing transient and scanning

Post by kevinarden »

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
Post Reply