Problem in solving Openfoam with Calculix

Hi everyone,
I’m facing a problem while solving the fluid model with coupling. Before the error message I can see that the fluid model and nodes with foam file were created

Will there be any error in my mapping methods??


Thanks in advance :slight_smile:

Dear Pranav

It’s an interesting problem, I am also looking forward to the solution.

Hi both!

Which OpenFOAM solver from which OpenFOAM version are you using?

Do you get the same issue with one of the tutorials (e.g., the perpendicular flap)?

This error typically means that the solver you are using does not allow mesh motion.

1 Like

Hi Dr,
Thank you for replying, I’m currently using OpenFOAM 10 with it’s appropriate preCICE’s OpenFOAM 10 adapter. There is no issue with the tutorials (updated tutorials for OpenFOAM 10).

Literally by our problem statement, there is a static fluid in a elastic shell tube. So, Will there be any mis-assumptions from my side on modelling the fluid participant?

If yes, Can you please suggest a suitable OpenFOAM solver which I can use for this problem…

pimpleFoam is a typical choice for incompressible flows. Which solver are you using?

Dear GC,

Greetings!

Pranav here

I appreciate your support. I am using pimpleFOAM solver, as recommended in the discourse forum. Being a newbie to this coupling technique, I intend to follow the instructions provided by preCICE based on their tutorials.

Introducing my model, it is a biomechanics application of tissue encapsulated with fluid and peripheral elastic fibres (similar to a balloon filled with water and enclosed by elastic rings).

Initially, I have assumed that there is a static fluid enclosed by an elastic shell with a cyliderical shape. Applying normal load to the cylindrical top with the bottom fixed. The purpose of this study is to examine the pressure pattern and stress over time.

I request your suggestion and guidance to fix our model.

This is our first attempt at FSI through preCICE coupling. We are interested in solving the problem and enjoying the use of the tool for further research.

Please accept my sincere thanks in advance.

ivdShell.zip (522.7 KB)

I am trying to run your case using run.sh inside fluid-openfoam (using OpenFOAM 10).
Comparing your files to the elastic-tube-3d tutorial, I see that you are calling blockMesh, but you don’t provide a system/blockMeshDict.

I see that there is already a directory constant/polyMesh, so the I am skipping the blockMesh and directly running pimpleFoam. With that, I get:

--> FOAM FATAL ERROR: 
Solution convergence criteria specified in PIMPLE.residualControl must be given as single values. Corrector loop convergence criteria, if appropriate, are specified as dictionaries in PIMPLE.<loopName>ResidualControl.

    From function bool Foam::singleRegionConvergenceControl::readResidualControls()
    in file cfdTools/general/solutionControl/convergenceControl/singleRegionConvergenceControl/singleRegionConvergenceControl.C at line 73.

FOAM exiting

Removing the PIMPLE.residualControl from your system/fvSolution (this probably needs to be adjusted to OpenFOAM 10 syntax), I get to the next error:

---[precice] ERROR:  Data with name "DisplacementData" is not defined on mesh "Fluid-Mesh-Nodes". Please add <use-data name="DisplacementData"/> under <mesh name="Fluid-Mesh-Nodes"/>.

This is a typo: In system/preciceDict, it seems like you have changed the following:

    readData
    (
-      DisplacementDelta
+      DisplacementData
    );

You also have another typo further down:

  Interface2
  {
    mesh              Fluid-Mesh-Faces;
-    patches           (interface);
+    patches           (inteface);

With these changes, the case seems to be running for a while, till I get the following error in CalculiX:

 average force= 0.000027
 time avg. forc= 0.000014
 largest residual force= 0.000000 in node 4 and dof 3
 largest increment of disp= 0.000000e+00
 largest correction to disp= 0.000000e+00

 convergence

Adapter writing coupling data...
Adapter calling advance()...
---[precice] ERROR:  advance() cannot be called with a timestep size of 0.

This error sounds familiar: OpenFOAM-CalculiX: Timestep Error - #5 by mattfrei Please take it from here and update this thread with your findings.

There are also further changes in the CalculiX case, which I cannot evaluate.

Further notes:

  • In system/fvSolution, you have set PIMPLE.nOuterCorrecters 50;. This seems like an arbitrary choice for now (it should probably be nOuterCorrectors, not nOuterCorrecters), which could make the simulation quite slower. I suggest removing it.
  • You have also changed in the system/controlDict:
    - writeControl timeStep;
    + writeControl runTime;
    - writeInterval 10;
    + writeInterval 0.10;
    
    I think you intended to get more frequent results, but this leads to no results for me till at least 0.01s simulation time, when CalculiX fails.
  • What I did, was to use meld to compare your case with the elastic-tube-3d tutorial. This tool may be useful for you as well.
1 Like

Thank you so much GC for your help and spending your valuable time for us. I hope we can sort out CalculiX error soon and will post here if there is any other possible solution for that problem which may help others too :slight_smile: .

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.