Custom 3D Elastic Tube cases are not working correctly

Problem: My custom 3D Elastic Tube case is not working correctly.

Version
preCICE:3.1.1
OpenFOAM:2012
OpenFOAM-adapter:1.3.1

Aim : Referring to the official preCICE Fluid-Structure Coupling (FSI) module example 3D Elastic Tube , I want to build a my-solid-openfoam example to replace the official solid-calculix example.(The my-fluid-openfoam example uses the pimpleFoam solver; the my-solid-openfoam example uses the solids4foam-2.2 solver.)

Geometric settings : I am using a geometry that I constructed myself. The internal fluid is a cylinder with a radius of 5 millimeters. The external solid is a cylindrical ring with a thickness of 1 millimeter (similar to the official 3D Elastic Tube), but my case is 20 centimeters long (the official case is 5 centimeters), and my meshing is also different from the official one.

solid:


fluid:

Solvers :The “my-fluid -openfoam” case uses the pimpleFoam solver; the “my-solids4foam-openfoam” case uses the solids4foam-2.2 solver.

Actions :

  1. 111myFSI (the exchanged data is Displacement): The my-fluid-openfoam case fully adopts the fluid-openfoam case settings in 3D Elastic Tube. The my-solids4foam-openfoam references the preCICE official case Perpendicular flap, setting the ‘0’, ‘constant’, and ‘system’ folders. For specific configurations, please refer to the attachment ‘111myFSI.zip’.
    Error message (fluid):

    #0 Foam::error::printStack(Foam::Ostream&) at ??:?
    #1 Foam::sigFpe::sigHandler(int) at ??:?
    #2 ? in /lib/x86_64-linux-gnu/libpthread.so.0
    #3 Foam::GAMGSolver::scale(Foam::Field&, Foam::Field&, Foam::lduMatrix const&, Foam::FieldField<Foam::Field, double> const&, Foam::UPtrList<Foam::lduInterfaceField const> const&, Foam::Field const&, unsigned char) const at ??:?
    #4 Foam::GAMGSolver::Vcycle(Foam::PtrListFoam::lduMatrix::smoother const&, Foam::Field&, Foam::Field const&, Foam::Field&, Foam::Field&, Foam::Field&, Foam::Field&, Foam::Field&, Foam::PtrList<Foam::Field >&, Foam::PtrList<Foam::Field >&, unsigned char) const at ??:?
    #5 Foam::GAMGSolver::solve(Foam::Field&, Foam::Field const&, unsigned char) const at ??:?
    #6 Foam::fvMatrix::solveSegregated(Foam::dictionary const&) at ??:?
    #7 Foam::fvMatrix::solveSegregatedOrCoupled(Foam::dictionary const&) at ??:?
    #8 Foam::fvMesh::solve(Foam::fvMatrix&, Foam::dictionary const&) const at ??:?
    #9 ? in ~/OpenFOAM/OpenFOAM-v2012/platforms/linux64GccDPInt32Opt/bin/pimpleFoam
    #10 __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
    #11 ? in ~/OpenFOAM/OpenFOAM-v2012/platforms/linux64GccDPInt32Opt/bin/pimpleFoam

    Then,fluid use RBFMeshMotionSolver in ‘dynamicMeshDict’file

    dynamicFvMesh dynamicMotionSolverFvMesh;motionSolverLibs (“libfvMotionSolvers.so” “libRBFMeshMotionSolver.so”);
    // Radial basis function solversolver RBFMeshMotionSolver;
    RBFMeshMotionSolverCoeffs
    {
    // Settings for the RBF solver
    //staticPatches (upperWall lowerWall);//dev
    staticPatches ();
    movingPatches (interface);
    fixedPatches (auto0 auto2);
    interpolation
    {
    function TPS;
    }
    coarsening
    {
    enabled no;
    }
    }

    Error message (fluid):
    request for pointVectorField pointDisplacement from objectRegistry region0 failed
    available objects of type pointVectorField are
    0()

  2. 222myFSI (the exchanged data is Displacementdelta): The my-fluid-openfoam case is fully set up based on the fluid-openfoam case in 3D Elastic Tube, and the my-solids4foam-openfoam references the preCICE official case Perpendicular flap for the ‘0’, ‘constant’, and ‘system’ folders. For specific configurations, please refer to the attachment ‘222myFSI.zip’.
    Error message(solid4foam):

Writing displacementDeltas is not supported.

111myFSI.zip (3.6 MB)

222myFSI.zip (547.9 KB)

@TLK, before looking deeper into this case, are you aware that solids4Foam already has a 3D Elastic Tube tutorial with preCICE?

This is true: The OpenFOAM adapter | preCICE - The Coupling Library

But you can use absolute displacements, instead.

Thank you very much for the reminder,I’ve been testing these cases these days,but I still have the following questions:

  1. I want to use only precice and OpenFOAM’s solvers (fluid: pimpleFoam; solid: solidDisplaecmentFoam/solids4foam) to simulate the problem of Elastic tube 3D. But I still haven’t built a complete case yet, can you help me or give me some advice?

  2. Why the current preCICE official case Elastic tube 3D (fluid-openfoam, solid-calculix) can not only stably operate the expansion problem caused by the positive high pressure of the fluid, but also the negative high pressure of the fluid, especially the large deformation, can also operate stably; However, solids4foam’s official case 3dTube can only simulate the problem of small deformation expansion; I can’t simulate a case that I built myself (fluid:pimplefoam, solid:solids4foam, using the official case of solids4foam’s 3dTube mesh), is it because of the mesh? (The fluid area of the preCICE official case Elastic tube 3D uses a tetrahedral mesh/triangular mesh, which is a non-structural mesh, which can have better dynamic mesh ability, and the mesh in other cases uses a hexahedral/quadrilateral mesh, which belongs to the structural mesh, and the effect may not be so good, especially the shrinkage problem caused by the negative high pressure of the simulated fluid, which is easy to cause the solution to fail due to mesh deformity?) Or other reasons, can you explain the possible reasons or give me some advice?

    I would like to express my sincere gratitude for any response and suggestions