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] Foam-extend-4.0/solid mechanics

Register Blogs Community New Posts Updated Threads Search

Like Tree8Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 3, 2019, 07:15
Default Foam-extend-4.0/solid mechanics
  #1
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Dear FOAM users,


I'm doing stress analysis for a geometry using elastic solid foam. My problem is the geometry consists of different materials. I would like to know if there is a way to assign different material properties to the geometry??


with regards,
Theja
thejavarma9 is offline   Reply With Quote

Old   August 3, 2019, 16:28
Default
  #2
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Dear FOAM users,


I'm doing stress analysis for a geometry using elastic solid foam. My problem is the geometry consists of different materials. I would like to know if there is a way to assign different material properties to the geometry??


with regards,
Theja
Hi
I think this tutorial is appropriate for your need:
tutorials/solidMechanics/elasticSolidFoam/bimaterialPlate
In constant/rheologyProperties you can assign different properties for different materials. First, the geometry is generated by for example blockMesh. Then setFields will be treated 'material' dictionary in '0' directory as one part or another is made of a different material.
Ali
amuzeshi is offline   Reply With Quote

Old   August 6, 2019, 10:03
Smile Acknowledgement
  #3
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
Hi
I think this tutorial is appropriate for your need:
tutorials/solidMechanics/elasticSolidFoam/bimaterialPlate
In constant/rheologyProperties you can assign different properties for different materials. First, the geometry is generated by for example blockMesh. Then setFields will be treated 'material' dictionary in '0' directory as one part or another is made of a different material.
Ali



Hi

Thank you for your reply! I'm working on it. I would like to know if we can add 4 different materials using the same solver??


Theja
thejavarma9 is offline   Reply With Quote

Old   August 7, 2019, 00:33
Default
  #4
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Hi

Thank you for your reply! I'm working on it. I would like to know if we can add 4 different materials using the same solver??


Theja
Yes, you can.
You only need to define 4 regions in setFieldsDict and then specify their properties in rheologyProperties.
amuzeshi is offline   Reply With Quote

Old   August 7, 2019, 17:48
Smile
  #5
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
Yes, you can.
You only need to define 4 regions in setFieldsDict and then specify their properties in rheologyProperties.
Hi!
Thanks again for your reply! Can you help in clarifying how to know which block corresponds to which material? for example; in material properties i defined steel, aluminium in material properties then after executing the setFields,

defaultFieldValues
(
volScalarFieldValue materials 0
volVectorFieldValue U (0 0 0)
);

regions
(
boxToCell
{
box (0 0 0) (1 0.5 1);
fieldValues
(
volScalarFieldValue materials 1
);
}
);

we get








From this, how can we know block 1 belongs to the aluminium and remaining block is steel?
Attached Images
File Type: png x.png (8.2 KB, 16 views)
thejavarma9 is offline   Reply With Quote

Old   August 8, 2019, 05:51
Default
  #6
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,089
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi,

In elasticSolidFoam, the order in which the materials are given in rheologyProperties defines the index of the material i.e. the first material in "material 0", the second is "material 1", etc.

The material index for each cell (i.e. defining what material it is) is specified in 0/materials and can be set with setFields.

By the way, the solids4foam toolbox has removed this material index field and instead uses cellZones to specify different materials.

Philip
Daniel_Khazaei and amuzeshi like this.
bigphil is offline   Reply With Quote

Old   August 8, 2019, 10:11
Smile
  #7
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi,

In elasticSolidFoam, the order in which the materials are given in rheologyProperties defines the index of the material i.e. the first material in "material 0", the second is "material 1", etc.

The material index for each cell (i.e. defining what material it is) is specified in 0/materials and can be set with setFields.

By the way, the solids4foam toolbox has removed this material index field and instead uses cellZones to specify different materials.

Philip



Hi,


Thanks for clarification.


Theja
amuzeshi likes this.
thejavarma9 is offline   Reply With Quote

Old   August 11, 2019, 11:33
Default elasticSolidFoam
  #8
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Hi,


My task is compute the stresses developed on a cylinder consisting of different materials. so I performed the simulation by adding one by one material using setFields. But the problem is "when I'm assigning a rubber material" to one of the component I'm getting floating point exception. Instead of rubber when I'm using different material (like aluminium) I'm getting results. But I need for rubber. I don't know where I'm deviating and I would like to know!!



Attached are the case b.c's.




with regards,
Theja
Attached Images
File Type: jpg U .jpg (44.1 KB, 21 views)
File Type: jpg materials.jpg (24.0 KB, 19 views)
File Type: jpg material prop.jpg (35.7 KB, 17 views)
File Type: jpg setFields.jpg (42.6 KB, 14 views)
thejavarma9 is offline   Reply With Quote

Old   August 11, 2019, 22:54
Default
  #9
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Hi,


My task is compute the stresses developed on a cylinder consisting of different materials. so I performed the simulation by adding one by one material using setFields. But the problem is "when I'm assigning a rubber material" to one of the component I'm getting floating point exception. Instead of rubber when I'm using different material (like aluminium) I'm getting results. But I need for rubber. I don't know where I'm deviating and I would like to know!!



Attached are the case b.c's.




with regards,
Theja
I think it would be better to share your case folder in order to I can cross-check your settings and run-time errors.
Ali
amuzeshi is offline   Reply With Quote

Old   August 12, 2019, 03:03
Default
  #10
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
I think it would be better to share your case folder in order to I can cross-check your settings and run-time errors.
Ali



Hi! Ali,


Thank you for your reply! I have attached link of my case file.


https://drive.google.com/open?id=1-W...HPO3FX7FCHeGQh
thejavarma9 is offline   Reply With Quote

Old   August 15, 2019, 05:36
Default
  #11
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Hi! Ali,


Thank you for your reply! I have attached link of my case file.


https://drive.google.com/open?id=1-W...HPO3FX7FCHeGQh
I downloaded and executed this case by:
Code:
setFields
elasticSolidFoam
It returned no error! [BTW, I did not wait for 10E04 nCorrectors to complete.]
By the way, Are you sure that this is correct[0/U]:
Code:
    inside
    {
        type            solidTraction;
        traction        uniform ( 1 1 1 );
        pressure        uniform 3000000;
        value           uniform (0 0 0);
    }
Does ' (1 1 1) ' mean radial direction?

Ali
amuzeshi is offline   Reply With Quote

Old   August 16, 2019, 19:34
Default
  #12
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
[QUOTE=amuzeshi;742180]I downloaded and executed this case by:
Code:
setFields
elasticSolidFoam
It returned no error! [BTW, I did not wait for 10E04 nCorrectors to complete.]
By the way, Are you sure that this is correct[0/U]:
Code:
    inside
    {
        type            solidTraction;
        traction        uniform ( 1 1 1 );
        pressure        uniform 3000000;
        value           uniform (0 0 0);
    }
Does ' (1 1 1) ' mean radial direction?

Ali[/QUOTE



Thank you for your reply and executing the case.

Yeah, It means that it was acting radially. correct me if I was wrong!

I again re-executed it and got converged but that was not the solution I was expecting. I think there is still more I need to know before executing. I would like to know is there a way to extract a certain number of cell sets from a selected cells?



From the figure, the geometry consists of 2 materials. using the setFields I assigned different material to one end of the pipe (orange color) by using 'boxToCell'. But I wouldn't want the bolts which are passing inside end of the flange to be of the different materials. The entire bolt should be the same material (blue color). so I would like to exclude the 'holes' region for the end pipe. How can I do that?
can you suggest me any other ways?


Theja
Attached Images
File Type: jpg Screenshot from 2019-08-17 00-48-58.jpg (53.8 KB, 19 views)
thejavarma9 is offline   Reply With Quote

Old   August 17, 2019, 04:25
Default
  #13
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Thank you for your reply and executing the case.

Yeah, It means that it was acting radially. correct me if I was wrong!

I again re-executed it and got converged but that was not the solution I was expecting. I think there is still more I need to know before executing. I would like to know is there a way to extract a certain number of cell sets from a selected cells?



From the figure, the geometry consists of 2 materials. using the setFields I assigned different material to one end of the pipe (orange color) by using 'boxToCell'. But I wouldn't want the bolts which are passing inside end of the flange to be of the different materials. The entire bolt should be the same material (blue color). so I would like to exclude the 'holes' region for the end pipe. How can I do that?
can you suggest me any other ways?


Theja
Quick answer:
1- Prepare a STL file of the end pipe surface (containing holes). Then use surfaceToCell rather than boxToCell in setFieldsDict:
Code:
    surfaceToCell
    {
        file           "geometry.stl";
        outsidePoints  ( (0 0 0) );
        includeCut     no;
        includeInside  yes;
        includeOutside no;
        nearDistance   0;
        curvature      0;
        fieldValues
        (
            volScalarFieldValue material 1
            volVectorFieldValue U (1 0 0)
        );
    }
(You may revise these settings for your own face.)

2- About radial direction, I should investigate more; To the best of my knowledge however, current setting is not correct.

Ali
amuzeshi is offline   Reply With Quote

Old   August 17, 2019, 16:27
Default
  #14
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
Quick answer:
1- Prepare a STL file of the end pipe surface (containing holes). Then use surfaceToCell rather than boxToCell in setFieldsDict:
Code:
    surfaceToCell
    {
        file           "geometry.stl";
        outsidePoints  ( (0 0 0) );
        includeCut     no;
        includeInside  yes;
        includeOutside no;
        nearDistance   0;
        curvature      0;
        fieldValues
        (
            volScalarFieldValue material 1
            volVectorFieldValue U (1 0 0)
        );
    }
(You may revise these settings for your own face.)

2- About radial direction, I should investigate more; To the best of my knowledge however, current setting is not correct.

Ali



Thank you for your help!




Theja
thejavarma9 is offline   Reply With Quote

Old   August 20, 2019, 07:41
Default
  #15
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,089
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by amuzeshi View Post
Code:
    inside
    {
        type            solidTraction;
        traction        uniform ( 1 1 1 );
        pressure        uniform 3000000;
        value           uniform (0 0 0);
    }
Does ' (1 1 1) ' mean radial direction?

Ali
Hi Ali,

'(1 1 1)' means to apply a traction of 1 Pa in the X direction, 1 Pa in the Y direction and 1 Pa in the Z direction, whereas the pressure of 3000000 is automatically applied in the normal direction.

The traction and pressure entries are summed together and applied as a total traction.

Presumably, in this case the traction entry should be set to (0 0 0).

Philip
amuzeshi and thejavarma9 like this.
bigphil is offline   Reply With Quote

Old   August 21, 2019, 16:49
Default
  #16
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
Quick answer:
1- Prepare a STL file of the end pipe surface (containing holes). Then use surfaceToCell rather than boxToCell in setFieldsDict:
Code:
    surfaceToCell
    {
        file           "geometry.stl";
        outsidePoints  ( (0 0 0) );
        includeCut     no;
        includeInside  yes;
        includeOutside no;
        nearDistance   0;
        curvature      0;
        fieldValues
        (
            volScalarFieldValue material 1
            volVectorFieldValue U (1 0 0)
        );
    }
(You may revise these settings for your own face.)

2- About radial direction, I should investigate more; To the best of my knowledge however, current setting is not correct.

Ali





Hi! Ali
I tried the 'surfaceToCell' using the .stl file. But the problem was when I'm specifying the outside points, I'm getting an error 'outside point is not inside the cell'.

The .stl domain ranges from (-0.142 -0.142 -0.022) to (0.142 0.142 0).
And for solid structures do we specify as

{
...

includeInside no;
includeOutside yes;
...
}


and vice-versa for pipe flows..!!


And I would like to know What's the major difference in specifying the 'volVectorFieldValue U (1 0 0)' instead of U (0 0 0)..!!


Or is there a way to execute using 'setSet' (creating a zone and assigning the material properties to that zone)?




And in the tutorial of biMaterial case (elasticSolidFoam), 'setFieldDict' was defined as:


regions
(
boxToCell
{
box (0 0 0) (1 0.5 1);
fieldValues
..
)


But the mesh domain ranges from 0 to 0.1 in z-direction. so how could the box be constructed from 0 to 1 in z-direction.




Theja

Last edited by thejavarma9; August 21, 2019 at 18:37.
thejavarma9 is offline   Reply With Quote

Old   August 22, 2019, 06:07
Default
  #17
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,089
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi,

Just to comment on the following points:

1.
Quote:
Originally Posted by thejavarma9 View Post
Or is there a way to execute using 'setSet' (creating a zone and assigning the material properties to that zone)?
If you like, you can try solids4foam, where cellZones are used for the different materials regions (the "materials" index field is no longer used).

2.
Quote:
Originally Posted by thejavarma9 View Post
And in the tutorial of biMaterial case (elasticSolidFoam), 'setFieldDict' was defined as:

regions
(
boxToCell
{
box (0 0 0) (1 0.5 1);
fieldValues
..
)

But the mesh domain ranges from 0 to 0.1 in z-direction. so how could the box be constructed from 0 to 1 in z-direction.
setFields will select all cells within this region/box so it is not a problem that the region/box is larger than the cell region to be selected.

Philip
amuzeshi and thejavarma9 like this.
bigphil is offline   Reply With Quote

Old   August 22, 2019, 18:51
Default
  #18
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Hi! Ali
I tried the 'surfaceToCell' using the .stl file. But the problem was when I'm specifying the outside points, I'm getting an error 'outside point is not inside the cell'.

The .stl domain ranges from (-0.142 -0.142 -0.022) to (0.142 0.142 0).
And for solid structures do we specify as

{
...

includeInside no;
includeOutside yes;
...
}


and vice-versa for pipe flows..!!
Hi Theja,
I can cross-check what u mentioned if you upload your STL file.

Quote:
Originally Posted by thejavarma9 View Post
And I would like to know What's the major difference in specifying the 'volVectorFieldValue U (1 0 0)' instead of U (0 0 0)..!!
There is no difference, It is only an initialization for numerical scheme. Bad initialization may end with diverging of the solution.
amuzeshi is offline   Reply With Quote

Old   August 23, 2019, 08:50
Default
  #19
New Member
 
Theja
Join Date: Dec 2018
Location: Germany
Posts: 13
Rep Power: 7
thejavarma9 is on a distinguished road
Quote:
Originally Posted by amuzeshi View Post
Hi Theja,
I can cross-check what u mentioned if you upload your STL file.



There is no difference, It is only an initialization for numerical scheme. Bad initialization may end with diverging of the solution.

Hi!,


Thank you for your reply!


I have attached link of my stl file.


https://drive.google.com/open?id=1_V...elUbHfrP_eaSWf


Theja
thejavarma9 is offline   Reply With Quote

Old   August 23, 2019, 22:42
Default
  #20
Senior Member
 
Ali Shayegh
Join Date: Oct 2015
Posts: 130
Rep Power: 10
amuzeshi is on a distinguished road
Quote:
Originally Posted by thejavarma9 View Post
Hi!,


Thank you for your reply!


I have attached link of my stl file.


https://drive.google.com/open?id=1_V...elUbHfrP_eaSWf


Theja
This surface is not oriented and positioned exactly as the left end of your whole geometry; It must be so in order to do cell operations.
amuzeshi is offline   Reply With Quote

Reply


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
error with reactingFoam BakedAlmonds OpenFOAM Running, Solving & CFD 4 June 22, 2016 02:21
[blockMesh] error message with modeling a cube with a hold at the center hsingtzu OpenFOAM Meshing & Mesh Conversion 2 March 14, 2012 09:56
[blockMesh] BlockMesh FOAM warning gaottino OpenFOAM Meshing & Mesh Conversion 7 July 19, 2010 14:11
[blockMesh] Axisymmetrical mesh Rasmus Gjesing (Gjesing) OpenFOAM Meshing & Mesh Conversion 10 April 2, 2007 14:00
[Gmsh] Import gmsh msh to Foam adorean OpenFOAM Meshing & Mesh Conversion 24 April 27, 2005 08:19


All times are GMT -4. The time now is 13:22.