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

Where might I obtain a copy of FOAM-2.2/2.3...?

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

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 13, 2010, 07:28
Default Where might I obtain a copy of FOAM-2.2/2.3...?
  #1
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,086
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi,


I wonder if anyone might know where I can obtain a copy of FOAM-2.3 or earlier?

I want to see how/if the old version of the contact stress solver worked, as the current version in the -dev line does not work anymore presumably due to certain changes/updates in the main source files.

Any suggestions would be very welcome,


Philip C


Also, I am not quite sure of the legalities since FOAM was a commercial software although Nabla Ltd did offer free academia licenses.
bigphil is offline   Reply With Quote

Old   July 13, 2010, 11:19
Default
  #2
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,902
Rep Power: 33
hjasak will become famous soon enough
I've got the full archive, back to approx 1993. It would be nice to know what does not work, especially to help with fixing it.

As a former director of Nabla Ltd, I am sure I can legally give you the code. Here's the listing of some of the old release versions done under Nabla Ltd; other and older work, including my PhD version (foam-1.5, 1996) are on backup DVDs, so these are easier:

16M 2001-07-06 11:16 foam1.9.6_19_04_01.gtgz
46M 2002-01-21 19:58 foam2.0_21_01_02.gtgz
48M 2002-03-28 15:11 foam2.1_28_03_02.gtgz
85M 2003-12-04 19:43 foam2.2_04_12_03.gtgz
88M 2004-12-13 16:22 foam2.3.2_13_12_04.gtgz
75M 2004-12-13 16:22 foam2.3_28_10_04.gtgz

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   July 13, 2010, 11:46
Default Thanks for the help
  #3
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,086
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi Hrv,


Thanks for replying.

That would be great if you could send me one of the FOAM versions, if possible the version in which the original contact solver was developed, so I can compare codes with the current release.

I have spent the past few weeks seriously looking into newContactStressFoam, and the problem seems to be that the slave faces that are partially in contact seem to be set with the wrong BC; these faces get displaced too close to the contact surface causing tensile stress peaks.
The attached picture shows how there are tensile stress peaks in the slave cells with faces that are partially in contact (slave is on the top).
These partially in-contact faces are a mix between fixedValue (in-contact) and fixedGradient (not-in-contact) where the touchFraction sets the proportion of mixing, but it doesn't seem to be mixed correctly.


The master is fine, as the method only passes over positive pressures, but the slave faces partially in contact do not do what they are meant to...


Maybe some changes in the main OpenFOAM code have caused the solver to stop working... that's why I would like to get a hold of the original "working" code and compare things and find the problem.


Best Regards,
Philip
Attached Files
File Type: pdf tensile_peaks_at_edge_contact.pdf (35.5 KB, 31 views)
bigphil is offline   Reply With Quote

Old   July 14, 2010, 04:51
Default
  #4
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,902
Rep Power: 33
hjasak will become famous soon enough
We had to introduce some changes saying that the contact cannot transfer the tensile stresses (on the stress side) and that the cells under tension lose contact (on the displacement side). It will be in the force transfer in the boundary condition, probably in the top-level solver at that time. Have a look at the code and see on which side you get tension (the one that uses fixed displacement or the one which fixes traction) - that should tell you which filter is missing.

My guess is that you won't find what you need in the library, because contact detection and interpolation didn't change in quite a while (6-7 years?). You need the old contact code, probably from the UC Dublin group.

In any case, if you want the old releases you are welcome to it, but please tell me which one.

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   July 14, 2010, 07:40
Default
  #5
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,086
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hrv,

For newContactStressFoam the slave (the one that is fixed displacement) has tension in the partially in contact cells.
I can see in the code where the pressure is passed from the slave to the master (fixed traction patch) and it only passes positive pressure and so the master is fine and never has tensile stresses at the contact.
So this master moves a bit from the pressure and then the slave gets displaced up to it and the loop continues until the contact converges.
The problem as I see it is setting the correct conditions on the slave faces that are partially in contact, hmmmn I think this comes down to setting the correct valueFraction at these faces.

Hmmnn you are probably right about me needing the old code but I am finding it hard to acquire - I am a PhD student in U C Dublin!. I have been working closely with Aleksandar Karac but he cannot seem to find his old code that he definitely had working.
If you are able to send me the last FOAM release (75M 2004-12-13 16:22 foam2.3_28_10_04.gtgz) that would be great! Hopefully it is only something small that has to be changed.


Also from slowly going through the code, there are a few things that look a bit strange to me (or maybe I am not interpretting/understanding them correctly), for example:

In newContactStressFoam, the slave valueFraction is set as
Code:
(contactProblem.C line 248):
            slavePatch.valueFraction() =
                (1.0 - urfFraction_)*slavePatch.valueFraction()
              + I*urfFraction_*valueFraction[slaveIndex];
where valueFraction[patchI]=touchFrac (just a scalar!)

This means that the valueFraction does not take into account the patch normals!? What direction gets set as fixedValue in this case?
I would set the slave valueFration as:
Code:
            slavePatch.valueFraction() =
                (1.0 - urfFraction_)*slavePatch.valueFraction()
              + I*urfFraction_*valueFraction[slaveIndex] * symm(nSLavePatch*nSlavePatch);
// remembering that valueFraction[slaveIndex] is just the slave touchFrac

In this way, the slave faces would be fixedValue (or a mix of FV and FG if touchFrac is < 1) in their normal direction and fixedGradient in their tangential direction.
I made this change and it seems to work better but the slave partially in contact faces still are in tension.


Another piece of code that look strange to me is when the slave refValue is calculated (contactPatchPair.C line 355):

Code:
    refValue[slaveIndex] +=
        nSlavePatch*
        min
        (
            pos(slaveFrac)*
            (
                (nSlavePatch & Upatches[slaveIndex])
              + slaveFrac*contactTol_
            ),
            (nSlavePatch & slaveDisp)
        );
There are a few things in the above assignment that I don't quite get:
1) pos(slaveFrac) is always all "1"? slaveFrac varies from 0 to 1 but by the definition of "pos" in the programmer's guide, it says pos(s) is 1 for s>=0?
2) Why use "+=" instead of "=", refValue[slaveIndex] is set to zero just before this?
3) What is the point of the first argument in the "min()" function? It just moves the faces by the contactTol_, is this just to make sure the faces don't move too quickly per step?
Does under-relaxtion not achieve this anyway?

I would think to set the slave refValue as:
Code:
 refValue[slaveIndex] =  nSlavePatch * (nSlavePatch & slaveDisp);
I made this change and I found that the contact converges quicker but the tension problem remains.


Phew, sorry for the long long reply, I feel as if it is something small (hopefully),


Best Regards,
Philip C

_____________
Prof. Ivankovic's Research Group
University College Dublin
bigphil is offline   Reply With Quote

Old   July 27, 2010, 12:54
Default The problem seems to be with the direction of the valueFraction
  #6
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,086
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
OK,

the problem seems to be with the direction of the valueFraction on the slave patch - the slave patch is the directionMixed patch.

The valueFraction (symmTensor) depends on the touchFrac (scalar) but the problem is: what direction should the slave faces be a mix of fixedValue and fixedGradient? i.e. How do you calculate the slave valueFrac when you have the slave touchFrac?

At the moment in newContactStressFoam, valueFraction is set:
valueFraction = I*touchFrac;
But what direction are the faces a mix of fixedValue and fixedGradient?

I have tried:
valueFraction = touchFrac*symm(nSlavePatch*nSlavePatch)
it works better but is not right for partially in contact faces.

I have also tried:
valueFraction = touchFrac*symm(nSlaveDisp*nSlaveDisp)
where nSlaveDisp=slaveDisp/mag(slaveDisp);
This works better for partially in contact faces but still sometimes they are in tension.


In the physical sense I am unsure which direction should be used...
I am spending considerable time on this and I am not sure I am even going in the right direction,
Do you have any tip how I might get to the bottom of this?


Philip
bigphil is offline   Reply With Quote

Reply

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
[Commercial meshers] Using starToFoam clo OpenFOAM Meshing & Mesh Conversion 33 September 26, 2012 05:04
[blockMesh] BlockMesh FOAM warning gaottino OpenFOAM Meshing & Mesh Conversion 7 July 19, 2010 15:11
[Gmsh] Import problem ARC OpenFOAM Meshing & Mesh Conversion 0 February 27, 2010 11:56
[blockMesh] Axisymmetrical mesh Rasmus Gjesing (Gjesing) OpenFOAM Meshing & Mesh Conversion 10 April 2, 2007 15:00
[Gmsh] Import gmsh msh to Foam adorean OpenFOAM Meshing & Mesh Conversion 24 April 27, 2005 09:19


All times are GMT -4. The time now is 07:29.