CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions > OpenFOAM CC Toolkits for Fluid-Structure Interaction

[solidMechanics] Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend"

Register Blogs Community New Posts Updated Threads Search

Like Tree134Likes

Closed Thread
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 27, 2014, 12:21
Default Probe for Solid Region
  #281
New Member
 
Join Date: Mar 2014
Posts: 23
Rep Power: 12
Brayanashel is on a distinguished road
How can one be sure that the probe actually is located in the solid region? If the probe is defined in controlDict of the solid folder, it does not work during run because the code is running from the fluid folder. On the other hand if the probe is defined in the fluid folder, it cannot recognize the solid displacement; it recognizes only the pressure and velocity. Could you present a sample probe for solid region, please?
Brayanashel is offline  

Old   December 5, 2014, 11:31
Default
  #282
Member
 
A. Bernath
Join Date: Jun 2011
Location: Karlsruhe, Germany
Posts: 39
Rep Power: 15
derkermit is on a distinguished road
Quote:
Originally Posted by Brayanashel View Post
How can one be sure that the probe actually is located in the solid region? If the probe is defined in controlDict of the solid folder, it does not work during run because the code is running from the fluid folder. On the other hand if the probe is defined in the fluid folder, it cannot recognize the solid displacement; it recognizes only the pressure and velocity. Could you present a sample probe for solid region, please?
Sorry, I can't cause I haven't used that type of solvers yet.
Maybe you have to run the probe utility with explicit specification of the region (probeLocations -region ...) or run it in both regions seperatly and join that afterwards.
derkermit is offline  

Old   December 12, 2014, 07:52
Default Quadratic Displacement
  #283
New Member
 
Join Date: Mar 2014
Posts: 23
Rep Power: 12
Brayanashel is on a distinguished road
Hi,

I would like to know how a quadratic displacement can be used in Eq. (10) of the following paper, please. Do you know any similar work? How well can it improve the displacement and stress results?

http://powerlab.fsb.hr/ped/kturbo/Op...tressPaper.pdf

Thanks.
Brayanashel is offline  

Old   January 4, 2015, 04:50
Default complex eigenvalues detected for tensor
  #284
Member
 
ALLEN
Join Date: Aug 2014
Posts: 32
Rep Power: 12
allenfieldin is on a distinguished road
Hi, Phillip, and all,

Thanks for the support of the icoNonlinear large displacement solver. I recently test a case for a cylinder with the icoFsiNonLinear solver, but the soveSolid part crashed after 3 inner loops during the first time step of the analysis. The details are below, and I have put some debugging icons in the solid solution part

Quote:
Solving Solid !!
Euler Scheme. !!
Loop location 1. !!
Loop location 2. !!
Loop location 3. !!
Loop location 4. !!
Loop location 1. !!
Loop location 2. !!
Loop location 3. !!
Loop location 4. !!
Loop location 1. !!
Loop location 2. !!
Loop location 3. !!
Loop location 4. !!
Loop location 1. !!
--> FOAM Warning :
From function eigenValues(const tensor&)
in file primitives/Tensor/tensor/tensor.C at line 170
complex eigenvalues detected for tensor: (4.18155 3.98554 0.0165307 -7.3138 -8.15028 -0.0375625 1.28697 1.66449 1.00722)
--> FOAM Warning :
From function eigenValues(const tensor&)
in file primitives/Tensor/tensor/tensor.C at line 170
complex eigenvalues detected for tensor: (4.18155 3.98554 0.0165307 -7.3138 -8.15028 -0.0375625 1.28697 1.66449 1.00722)
Floating point exception (core dumped)
the debugging icos are placed as below:
Quote:
do
{ Info<<"Loop location 1. !!"<<endl;
DU.storePrevIter();

fvVectorMatrix DUEqn
(
Cn*rho*fvm::ddt(DU)
- Co*rho*DV.oldTime()
==
fvm::laplacian(2*mu + lambda, DU, "laplacian(DDU,DU)")
- fvc::laplacian(mu + lambda, DU, "laplacian(DDU,DU)")
+ fvc::div
(
mu*gradDU.T()
+ lambda*(I*tr(gradDU))
+ mu*(gradDU&gradDU.T())
+ 0.5*lambda*(I*tr(gradDU & gradDU.T()))
+ (sigma & DF.T())
+ (DSigma & DF.T()),
"div(sigma)"
)
);
Info<<"Loop location 2. !!"<<endl;
solverPerf = DUEqn.solve();

DU.relax();

if(iCorr == 0)
{
initialResidual = solverPerf.initialResidual();
}
Info<<"Loop location 3. !!"<<endl;
gradDU = fvc::grad(DU);

DF = gradDU.T();

# include "calculateDSigma.H"
Info<<"Loop location 4. !!"<<endl;
}
while
(
solverPerf.initialResidual() > convergenceTolerance
&& ++iCorr < nCorr
);
I have no idea about the problem due to the Tensor.C, and I cannot even know which part of the DUEqn part needs a eigenvalue analysis and how it goes wrong.

I notice in a previous post some guy came into similar problem in #208, but my problem arise in the first time step. will you give some hint on what might cause the problem so I can move on to debug.

Thank you in advance
allenfieldin is offline  

Old   January 4, 2015, 22:03
Default
  #285
Member
 
ALLEN
Join Date: Aug 2014
Posts: 32
Rep Power: 12
allenfieldin is on a distinguished road
Hi, big Phillip, I have checked the error message, I think the eigen value error in the above post might happen due to the following large interpolate errors:
Quote:

Reading coupling properties
Create fluid-to-solid and solid-to-fluid interpolators
Check fluid-to-solid and solid-to-fluid interpolators
Fluid-to-solid face interpolation error: 2.40112
Solid-to-fluid face interpolation error: 2.40112
time step continuity errors : sum local = 0, global = 0, cumulative = 0
GAMG: Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
GAMG: Solving for pcorr, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 0, global = 0, cumulative = 0
Courant Number mean: 0 max: 0 velocity magnitude: 0

Starting time loop
how can the solid-to-fluid face interpolation error so large? I have tracked this post and found some cases which this value could be ~0, so I return to the "createZoneToZoneInterpolation.H", but I found this code can't produce such large error as long as the setup is okay(geometry) with both the solid and fluid part. and I followed the tutorial case to set up my 3D case and I believe the geometry is okay.
So can you give me some hint on what probable wrong I have made to make such large interpolation error?

Thanks.

/Allen



Quote:
Originally Posted by allenfieldin View Post
Hi, Phillip, and all,

Thanks for the support of the icoNonlinear large displacement solver. I recently test a case for a cylinder with the icoFsiNonLinear solver, but the soveSolid part crashed after 3 inner loops during the first time step of the analysis. The details are below, and I have put some debugging icons in the solid solution part



the debugging icos are placed as below:


I have no idea about the problem due to the Tensor.C, and I cannot even know which part of the DUEqn part needs a eigenvalue analysis and how it goes wrong.

I notice in a previous post some guy came into similar problem in #208, but my problem arise in the first time step. will you give some hint on what might cause the problem so I can move on to debug.

Thank you in advance
allenfieldin is offline  

Old   February 22, 2015, 09:40
Default
  #286
Senior Member
 
Aram Amouzandeh
Join Date: Mar 2009
Location: Vienna, Vienna, Austria
Posts: 190
Rep Power: 17
mabinty is on a distinguished road
Dear all,

am currently learning and testing the capabilities of elastiSolidFoam by analysing a simply bending beam clapmed on one side.

I read in a previous post that the segregated nature of the solver makes the convergence slow for such a problem. I can confirm that!

Furthermore, I observed much faster convergence in case I do not use aitkenRelaxation (set to "no" in the fvSolution dictionary). Now I would like to know why this is the case since Aitken relaxation should normally speed up convergence, isn't it?

Appreciate your comments!

Cheers,
Aram
mabinty is offline  

Old   April 3, 2015, 05:28
Default Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend"
  #287
New Member
 
Join Date: Apr 2015
Posts: 2
Rep Power: 0
orcus is on a distinguished road
Hi all,

I write because I would like to ask you for ideas. So I try to write my problem in short.

First, I have an object, like a cylindrical plastic flower pot (a smaller one). The object has thickness.
I want to place in the ground (the bottom side), and I want to crush with continuous force from the upper side.
The force has only Z (vertical) component eg.: (0 0 10000) [Pa].

I tried some boundary conditions, but none was work properly.
In all case appear shear stresses in the boundaries.

I include an image with the schematic representation of the object's profile.The horizontal green lines show the surface with the force (A) (upper side of the object) and the horizontal red lines show the surfaces which are standing on the ground (B). The ground is theoretically.


http://postimg.org/image/n1v2y0267/

The boundary conditions were: A = force or displacement, B = force or displacement or zero displacement. The surfaces with black lines, always "walls".
The red arrows show the problems, the shear stresses.
The cases were opposedForces_elasticSolidFoam, the solver was PCG, the preconditioner was DIC.

I also tried the following option: I made two boards for the surfaces. Like I compressing it between my palms (my palms are equal the boards in OpenFOAM).
But this is very slow method (because is friction etc), I looking for a relatively fast method.

So, have anybody any idea, how can I eliminate the shear stresses? Or is there a model in OpenFOAM that can deal with this problem?

Thank you in advance!
orcus is offline  

Old   April 3, 2015, 08:42
Default
  #288
Member
 
A. Bernath
Join Date: Jun 2011
Location: Karlsruhe, Germany
Posts: 39
Rep Power: 15
derkermit is on a distinguished road
Quote:
Originally Posted by orcus View Post
Hi all,

I write because I would like to ask you for ideas. So I try to write my problem in short.

First, I have an object, like a cylindrical plastic flower pot (a smaller one). The object has thickness.
I want to place in the ground (the bottom side), and I want to crush with continuous force from the upper side.
The force has only Z (vertical) component eg.: (0 0 10000) [Pa].

I tried some boundary conditions, but none was work properly.
In all case appear shear stresses in the boundaries.

I include an image with the schematic representation of the object's profile.The horizontal green lines show the surface with the force (A) (upper side of the object) and the horizontal red lines show the surfaces which are standing on the ground (B). The ground is theoretically.


http://postimg.org/image/n1v2y0267/

The boundary conditions were: A = force or displacement, B = force or displacement or zero displacement. The surfaces with black lines, always "walls".
The red arrows show the problems, the shear stresses.
The cases were opposedForces_elasticSolidFoam, the solver was PCG, the preconditioner was DIC.

I also tried the following option: I made two boards for the surfaces. Like I compressing it between my palms (my palms are equal the boards in OpenFOAM).
But this is very slow method (because is friction etc), I looking for a relatively fast method.

So, have anybody any idea, how can I eliminate the shear stresses? Or is there a model in OpenFOAM that can deal with this problem?

Thank you in advance!
Regarding the shear stresses, you can try fixedDisplacementZeroShear BC.
Also I think you have to use a contact model in order to avoid penetration of pot and ground.
derkermit is offline  

Old   April 20, 2015, 06:09
Default compression test by two contacting surfaces
  #289
New Member
 
Join Date: Nov 2014
Posts: 6
Rep Power: 12
kirzoaktrt is on a distinguished road
Hello,

I am trying to simulate a compression problem by squeezing an object sandwiched between two surfaces. See the attached schematic. Here are the BC's:

load_down: fixed disp. (0 0 -1E-8)
load_up: fixed disp (0 0 -1E-8)
all other sides of the red surface: same fixed disp downwards
obj_up: contact with load_up slave
obj_down: contact with gnd_up slave
all other sides of obj: solidTractionFree
gnd_down: fixed disp. (0 0 0)
all other sides of gnd: same fixed disp.

So 'obj' is the geometry compressed by the two plates 'load' and 'gnd'.

I try to solve the problem with elasticSolidFoam following the frictionBall example. The problem is that there seems to be no contact between load and obj - load moves down, but the rest doesn't do anything.

I uploaded the case here: https://drive.google.com/file/d/0B_V...ew?usp=sharing

What am I doing wrong? Is it the BC's? The solver settings? Or the problem formulation itself?

Many thanks!

case2.png
kirzoaktrt is offline  

Old   April 20, 2015, 11:38
Default
  #290
Senior Member
 
Joachim Herb
Join Date: Sep 2010
Posts: 650
Rep Power: 22
jherb is on a distinguished road
I have tried the elasticNonLinULSolidFoam with a (somehow) similar setup. Have a look:
https://github.com/jmozmoz/foamRingCompressionTest
jherb is online now  

Old   April 24, 2015, 11:31
Default
  #291
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
Quote:
Originally Posted by davidsblom View Post
Hi Philipp,

[0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Cannot find file "points" in directory "constant/solid/polyMesh"
[0]
[0] From function Time::findInstance(const fileName&, const word&, const IOobject::readOption)
[0] in file db/Time/findInstance.C at line [1]
[1]
[1] --> FOAM FATAL ERROR:
[1] Cannot find file "points" in directory "constant/solid/polyMesh"
[1]
[1] From function Time::findInstance(const fileName&, const word&, const IOobject::readOption)
[1] in file db/Time/findInstance.C at line 148.
[1]
FOAM parallel run exiting
[1]
148.
[0]
FOAM parallel run exiting
[0]
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 1 in communicator MPI_COMM_WORLD
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------
--------------------------------------------------------------------------
mpirun has exited due to process rank 1 with PID 20176 on
node tud276993 exiting without calling "finalize". This may
have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
[tud276993:20174] 1 more process has sent help message help-mpi-api.txt / mpi-abort
[tud276993:20174] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages

__________________________________________________ _______________________________________--

Edit: I figured out how to run the case in parallel. When the computational domain is split up, the solid mesh should be available in fluid/processor*/. Therefore, the Allrun file needs to be modified accordingly, and the makeLinks script should be used to link the solid mesh.
Hello everyone,
I have got the same mistake.. I try to solve it since hours but I don't find any solution. Might anyone explain how I can solve it? I'm quit new in OpenFoam..

Thank you so much,
best regards,
Stephie
stephie is offline  

Old   April 24, 2015, 11:34
Default
  #292
Senior Member
 
Join Date: Jan 2014
Posts: 179
Rep Power: 12
hxaxtma is on a distinguished road
You have to create your links properly,

here is some example how this can be done:
Code:
#!/bin/bash

# Check for proper number of command line args.
if [ "$#" -ne 2 ]; then
  echo "Usage: makeLinks fluidCase solidCase"
  exit 1 
fi

echo changing into fluid directory
cd $1/constant

echo creating links
ln -svf ../../$2/constant solid
cd ../system
ln -svf ../../$2/system solid
cd ../0
ln -svf ../../$2/0 solid
cd ..

echo creating processor links
for proc in processor*
do
  cd $proc
  cd 0
  ln -svf ../../../$2/$proc/0 solid
  cd ../constant
  ln -svf ../../../$2/$proc/constant solid
  cd ../..
done
hxaxtma is offline  

Old   May 7, 2015, 08:35
Default
  #293
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
Dear Philip,

I'm a young student from Germany and I work just a few weeks with foam-ext. I tried the HronTurek Tutorial. I run the case in parallel (2 processors) and it worked. After the case finished, I tried to reconstruct it. If I run reconstructPar only the fluid data are reconstructed and the solid part is irgnored.
Might you have an idea how I can solve this problem?
I had a look in the Forum and there are some people with the same problem.. but without any solution. I wouls be really grateful if you might help my with this problem.

Thank you so much and best regards,
Stephie
stephie is offline  

Old   May 7, 2015, 09:36
Default
  #294
Senior Member
 
Join Date: Jan 2014
Posts: 179
Rep Power: 12
hxaxtma is on a distinguished road
Hey Stephie,


This small bash skript could help you

Code:
#!/bin/sh
    cd $1
    TIME_DIRS=`foamInfoExec -times | sed '1,/constant/d'`
    echo "makeFsiResultsLinks for" $TIME_DIRS
    cd ../$2
    for T in $TIME_DIRS
    do
        ln -s ../$1/${T}/solid ${T}
    done
    cd ..

Or in SHORT if you want to use the OF functions!

Code:
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
makeFsiResultsLinks fluid solid
jherb and stephie like this.
hxaxtma is offline  

Old   May 10, 2015, 13:44
Default
  #295
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
Hey,

thank you so much for your answer.

I tried both of your scripts.

If I use the first one, there is an error:
sed1,/constant/d was not found, as well foamInfoExec-time was not found

and if I take the second one, time files where create in the solid folder but there aren't correct. There I got the following error message:
The link of (time file f.e. 0.1) is faulty. The link can not used, cos your target >>../fluid/0.1/solid<< does not exist.

Do you know, where the mistake might be?

I would be grateful if you might help me again.
Thank you so much!

Best regards,
Stephie
stephie is offline  

Old   May 10, 2015, 17:28
Default FSI Links
  #296
Senior Member
 
Join Date: Jan 2014
Posts: 179
Rep Power: 12
hxaxtma is on a distinguished road
Hi

You really used the runTime Functions in the dictionary before the fluid and solid folder?
hxaxtma is offline  

Old   May 11, 2015, 04:25
Default
  #297
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
yes, I did. And it would work, but one Link is missing. When I compare my case with the case which run on an other computer the solid file in the time files is missing. That is why the error appeared: The link can not used, cos your target >>../fluid/0.1/solid<< does not exist.

So is it possible to create this missing link?

(The first mistake ...not found was my mistake.. I forgot some space between the capitals, I correct it)
stephie is offline  

Old   May 11, 2015, 05:55
Default
  #298
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
I had a look on older cases...everytime I try to run the case in parallel this file is missing. I reconstructed it with reconstructPar and when I have a look into the reconstrecuted time file there are just the polymesh and the uniform folder. In comparison to the file, where I run the case with just on processor - there, the solid file exist next to the polymesh and the uniform file.
But why? is there a mistake with reconstructPar?
stephie is offline  

Old   May 13, 2015, 03:56
Default
  #299
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
Hey,

it's me again.
I am grateful of the help of Daniel Duque, who send me a script to create the missing solid folders and to reconstruct the case.

Here is his code:

#!/bin/bash

echo creating processor links
mkdir tmp

cd fluid
#reconstructPar

for proc in processor*; do
mkdir ../tmp/$proc
for time in $proc/*; do
mkdir ../tmp/$time
ln -s $time/solid/* ../tmp/$time
done
done
ln -s ../solid/system ../tmp/system
ln -s ../solid/constant ../tmp/constant
ln -s ../solid/0 ../tmp/0
cd ../tmp
reconstructPar

Unfortunately I got the problem, that there is no movement of the solid and I can't see the vortexes. Do anyone have the same problem or a solution?

With his bash file it was possible to reconstruct both parts, the solid and the fluid. Up to this, we have to open up two paraFoam file - one for the solid and one for the fluid and combine them by overlapping. This not the best solution. Are there any other ways to combine the fluid and the solid part?

Thank you for your support.

Best regards,
Stephie
stephie is offline  

Old   May 13, 2015, 06:18
Default
  #300
Member
 
Stephanie
Join Date: Feb 2015
Location: Magdeburg, Germany
Posts: 71
Rep Power: 11
stephie is on a distinguished road
okay.. I find my mistake... I took the wrong density, this was the reason why I couldn't see any movement.
stephie is offline  

Closed Thread


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
GPU Linear Solvers for OpenFOAM gocarts OpenFOAM Announcements from Other Sources 37 August 17, 2022 15:22
[Virtualization] OpenFOAM oriented tutorial on using VMware Player - support thread wyldckat OpenFOAM Installation 2 July 11, 2012 17:01
New OpenFOAM Forum Structure jola OpenFOAM 2 October 19, 2011 07:55
Cross-compiling OpenFOAM 1.7.0 on Linux for Windows 32 and 64bits with Mingw-w64 wyldckat OpenFOAM Announcements from Other Sources 3 September 8, 2010 07:25
OpenFOAM Debian packaging current status problems and TODOs oseen OpenFOAM Installation 9 August 26, 2007 14:50


All times are GMT -4. The time now is 06:51.