CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Bugs

solids4Foam: Restart of solid-solid contact cases not working for some cases

Register Blogs Members List Search Today's Posts Mark Forums Read

Like Tree4Likes
  • 3 Post By conza
  • 1 Post By Bana

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 21, 2022, 11:15
Question solids4Foam: Restart of solid-solid contact cases not working for some cases
  #1
New Member
 
Conrado Zanutto
Join Date: Dec 2021
Location: United Kingdom
Posts: 5
Rep Power: 4
conza is on a distinguished road
Dear All,

I've been running a solid-solid contact case that consists of a spring compression and is very similar to the tutorial case "pipeCrush" (/tutorials/solids/elastoplasticity/pipeCrush).

As the "solidModel" I'm using "nonLinearGeometryUpdatedLagrangian" with the "neoHookeanElastic" to evaluate the stress tensor. To control the displacement of the top plate (the one that compresses the spring), I'm using a "timeVsDisp" table.

I'm facing a problem which I didn't manage to solve, which occurs when I restart the case. I have tried different ways to perform the restart, namely:

1 - Simple restart by setting "startFrom" to "latestTime" in the controlDict;
2 - Use mapFields (e.g.: mapFields /home/CaseToRestart -sourceTime "last time") and follow 1;
3 - Copy the results from the last time-step to the "0" folder, modify the "timeVsDisp" table accordingly and run the case from the "startTime".

None of the three alternatives above has been able to properly restart the cases. For instance, what happens for each of the three alternatives above is:

Alternative 1 - I get the following message:
"...
setCellDisplacements: reading cellDisplacements
Floating point exception (core dumped)"
Alternative 2 - I get the following message:
"...
setCellDisplacements: reading cellDisplacements
Corr, res, relRes, matRes, iters
Floating point exception (core dumped)"
P.S.: Even if I update the "timeVsDisp" table by using linear interpolation or by taking the value from Paraview, I get this error message.
Alternative 3 - I get the following message:
"...
setCellDisplacements: reading cellDisplacements
Corr, res, relRes, matRes, iters
Floating point exception (core dumped)"

I have also tried to follow similar procedures with the tutorial cases "pipeCrush" (/tutorials/solids/elastoplasticity/pipeCrush) and "cylinderCrush" (/tutorials/solids/elastoplasticity/cylinderCrush), but it also doesn't work.

The case I have been running is very similar to the tutorial case "pipeCrush" (/tutorials/solids/elastoplasticity/pipeCrush) without taking into account the "plasticStrainVsYieldStress" table (just using neoHookeanElastic in the "mechanicalProperties").

Do you have any idea why the restart is not working for these cases? Do you have any alternative suggestions for trails I can make to be able to restart the cases?

Thank you so much for your time and attention.

Kind regards,
Conrado
Bana, anaspauzi and W Mao like this.

Last edited by conza; March 22, 2022 at 05:59.
conza is offline   Reply With Quote

Old   November 5, 2023, 07:04
Default
  #2
Member
 
Mohammad Reza
Join Date: Sep 2015
Posts: 44
Rep Power: 10
Bana is on a distinguished road
Thank you for posting this issue.

I am here to look for some answers since I am facing the similar problem, but unfortunately there is none as most of the time in the posts of this forum.

The only way I manage to solve it so far is to reduce the time step or Courant number ridiculously too much, but the computational cost isn't worth it. (It is only a restart, it is expected to work with the same time step size and case settings as before!).

I will look more deeply into the problem and will post a solution for the people that may will have this problem in future. (To save them some time!)
Bana is offline   Reply With Quote

Old   November 6, 2023, 07:30
Default
  #3
New Member
 
Conrado Zanutto
Join Date: Dec 2021
Location: United Kingdom
Posts: 5
Rep Power: 4
conza is on a distinguished road
Hi Mohammad Reza,

Thank you very much for your message.

I am not working on Computational Solid Mechanics any more, however, I would like to share some information with you which may be helpful.

I talked to Philip some time ago and explained this issue. He pushed a very detailed commit with changes to ensure consistent restarting for cases using nonlinear solid models. You can find the commit with the changes on this link https://bitbucket.org/philip_cardiff...mmits/4670d20b

And you can download the solids4Foam version with all those changes already added from the development branch on this link https://bitbucket.org/philip_cardiff...c/development/ , or, I think these changes are already implemented in the new solids4Foam version: https://www.solids4foam.com/

I performed some tests and I remember everything went fine.

Another option would be to do the following:

In this case, fe41 is the alias to source the foam-extend-4.1 bashrc file.

Consider 2 folders:

1. Case_Orig: the one from which you started the simulation (from t = 0 s), and the one from which you want to perform the restart.

2. Case_Restart: the restarted case folder.

First, you need to reconstruct the results for the target time (the one you want to restart from), for instance, t = 12 s, then, in Case_Orig:

$ fe41
$ reconstructPar - time 12

In order to restart your case using mapFields, the general idea is to make a copy of the results from the target time from which you want to restart, and you can do this by using mapFields.

The procedure is

• first copy exactly the same folders 0, constant and system from Case_Orig to Case_Restart;

• then add a mapFields dict to the system folder of Case_Restart;

• then, open a terminal in Case_Restart and type:

$ mapFields ../ Case_Orig - sourceTime * targetTime *

Now you need to do the following:

• In Case_Restart, you have to change the folder name 0 to the value of the target time;

• In Case_Restart, you also need to change in controlDict the startTime to the value of the target time;

• In case you use some table, for instance, a timeVsDisp, you can use a linear interpolation to obtain the value at the target time and update the table, or, in Case_Restart, you can open the target time results in Paraview, then in "Mesh regions" select just the patch where you apply the timeVsDisp table, then select the D results and select "Rescale to Custom Data Range", and then copy the minimum value of the Set Range;

• Now you need to update the timeVsDisp table with the copied D value (i.e., link it to the target value).

Finally, you can run the case following the standard procedure.


Cheers,
Conrado
conza is offline   Reply With Quote

Old   November 7, 2023, 06:10
Default
  #4
Member
 
Mohammad Reza
Join Date: Sep 2015
Posts: 44
Rep Power: 10
Bana is on a distinguished road
Thank you Conrado for your extended explaination! It is really appreciated.

I solved my problem but not with any of the recommended modifications you described.

I also mention the mitigation I implemented here:

I am using a linear solid solver of solids4foam that sometimes was crashing after restart. My "Restart" problem was resolved after increasing writing precision from 6 to 12 and until now, my cases are working without Restart problem.


Best regards,
Mohammadreza
conza likes this.
Bana is offline   Reply With Quote

Old   November 7, 2023, 06:52
Default
  #5
New Member
 
Conrado Zanutto
Join Date: Dec 2021
Location: United Kingdom
Posts: 5
Rep Power: 4
conza is on a distinguished road
Hi Mohammad Reza,

Thank you so much for sharing this. =]

Cheers,
Conrado
conza is offline   Reply With Quote

Reply

Tags
celldisplacements, contact algorithm, restart problem, solid-solid contact, solids4foam

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Boundary Conditions in solids4Foam contact problems. ajelahe74 OpenFOAM CC Toolkits for Fluid-Structure Interaction 3 July 23, 2021 12:15
[solids4Foam] How to calculate drag coeff when using solids4Foam amuzeshi OpenFOAM CC Toolkits for Fluid-Structure Interaction 15 November 7, 2019 12:50
Error - Solar absorber - Solar Thermal Radiation MichaelK CFX 12 September 1, 2016 05:15
Defining Solid Zones Not working elmcmaster FLUENT 3 May 22, 2009 07:14
CFX4.3 -build analysis form Chie Min CFX 5 July 12, 2001 23:19


All times are GMT -4. The time now is 01:54.