Deformation with internal forces in CalculiX


I am using precice with Calculix to investigate a chamber morphing airfoil in quasi 2D. The chamber morphing is thereby actuated by a moment in Calculix. My fluid solver is TAU and I am using a TAU-adapter written at our Chair. Of somereason I am not seeing the same deformation I am seeing in only Calculix. The forces are attached, as seen in the Calculix output file, but almost no deformation is seen in the coupling. I am running a implicit coupling scheme with following precice_config_file:


    <solver-interface dimensions="3">

    <data:vector name="Forces0"/>
    <data:vector name="Displacements0"/>

    <!-- <mesh name="Fluid-Mesh-Faces">
        <use-data name="Forces0"/>
    </mesh> -->

    <mesh name="Fluid-Mesh-Nodes">
        <use-data name="Displacements0"/>
        <use-data name="Forces0"/>

    <mesh name="Solid">
        <use-data name="Forces0"/>
        <use-data name="Displacements0"/>

    <participant name="Fluid">
        <!-- <use-mesh name="Fluid-Mesh-Faces" provide="yes"/> -->
        <use-mesh name="Fluid-Mesh-Nodes" provide="yes"/>
        <use-mesh name="Solid" from="Calculix"/>
        <write-data name="Forces0" mesh="Fluid-Mesh-Nodes"/>
        <read-data name="Displacements0" mesh="Fluid-Mesh-Nodes"/>
       <mapping:petrbf-thin-plate-splines direction="write" from="Fluid-Mesh-Nodes" to="Solid" constraint="conservative" y-dead="true" />
        <mapping:petrbf-thin-plate-splines direction="read" from="Solid" to="Fluid-Mesh-Nodes" constraint="consistent"/>

    <participant name="Calculix">
        <use-mesh name="Solid" provide="yes"/>
        <read-data name="Forces0" mesh="Solid"/>
        <write-data name="Displacements0" mesh="Solid"/>

    <m2n:sockets from="Fluid" to="Calculix" distribution-type="gather-scatter"/>

                <timestep-length value="0.0001984125" />
            <max-time value="10"/>

            <participants first="Fluid" second="Calculix"/>
            <exchange data="Forces0" mesh="Solid" from="Fluid" to="Calculix"/>
            <exchange data="Displacements0" mesh="Solid" from="Calculix" to="Fluid" />
            <max-iterations value="50"/>

            <absolute-convergence-measure limit="1e-4" data="Displacements0" mesh="Solid"/>
            <relative-convergence-measure limit="1e-4" data="Forces0" mesh="Solid"/>

                <data name="Displacements0" mesh="Solid"/>
                <preconditioner type="residual-sum"/>
                <filter type="QR1" limit="1e-6"/>
                <initial-relaxation value="0.01"/>
                <max-used-iterations value="20"/>
                <timesteps-reused value="2"/>

My convergence file tells me that it always converges after 3 iterations, but is it possible, that this is still a convergence issue? I am also wondering, why it is always converging after exactly 3 iterations.
Does anyone have experience with a similar case where a internal Force or moment is applied to Calculix?

I would really appreciate your help!


Hi Jonas,

The config looks correct (except the missing closing tag of your Fluid participant, but that’s probably sth you simply forgot when copying here).

To better study the convergence you could look at the convergence and iteration files and upload them here. Convergence always after 3 iterations can happen. That alone is not suspicious yet.

To check whether the data you write in the CalculiX adapter or the data you read in the TAU adapter is wrong, you could try to export and visualize them.


Hi Jonas,

How did your problem turn out, were you able to solve it? If yes, how?