|
[Sponsors] |
Parallelisation of a new solid solver in OpenFOAM |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 15, 2017, 12:48 |
Parallelisation of a new solid solver in OpenFOAM
|
#1 |
Member
|
Hello,
Some of you might be aware that we have recently implemented a new solid mechanics solver in OpenFOAM. This robust solver is based on a mixed velocity/strains approach rather than the conventional second order displacement based formulations and is able to simulate large strain deformation behaviour even in the case of nearly incompressible materials. Some links to what we have been able to achieve with this solid solver are shown below: Article: https://www.researchgate.net/publica...rangian_scheme Simulations: https://www.youtube.com/playlist?lis...UVAOZ05iHJhG2O In this next phase of this project, we are aiming to release this solid solver to the OpenFOAM community so that it can be tested in various large scale applications. Before that, I would like to parallelize the whole implementation. I have been reading many things regarding parallelisation in OpenFOAM and I know now how to do it for most parts of the code except for one. Please refer to the attached figure. You have a domain here which is decomposed and passed to 4 processors. I need to compute a quantity at the node (cross) in the figure which depends on the cell values attached to this node (4 values). Imagine that I am in processor 1 at the moment and I am computing this cross. I know the cell value in processor1 (black square) and the neighbour patch cell values in processors 2 and 4 (green squares) through the 'patchNeighbourField()' function. What I am not able to retrieve is the cell value in processor 3 (red square). Does any one know how I can get this value to update my pointField (cross)? Is there some function already implemented that I can use? Thanks in advance.
__________________
Jibran Haider |
|
August 16, 2017, 09:01 |
|
#2 |
Senior Member
Sergei
Join Date: Dec 2009
Posts: 261
Rep Power: 22 |
You could look at globalMeshData class.There might be some functionality that can be of some help to you.
|
|
August 17, 2017, 06:34 |
|
#3 |
Member
|
Thanks Sergei. I will have a look at this class and update here if I find something.
__________________
Jibran Haider |
|
August 25, 2017, 07:41 |
|
#4 |
Member
|
Ok, I have managed to get this sorted.
'volPointInterpolation' class is your friend and the necessary member functions are: (1) syncUntransformedData() (2) addSeparated() (3) pushUntransformedData() globalMeshData class is used in the first and third functions.
__________________
Jibran Haider |
|
Tags |
fvm, node, parallel, processor, solid |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[ANSYS Meshing] Help with element size | sandri_92 | ANSYS Meshing & Geometry | 14 | November 14, 2018 08:54 |
Sharing links for two phase solver packages developed by openfoam community | swap_9068 | OpenFOAM Programming & Development | 1 | April 2, 2017 06:43 |
fluent divergence for no reason | sufjanst | FLUENT | 2 | March 23, 2016 17:08 |
How to rewrite a standard OpenFOAM solver as a C++ class | cfbaptista | OpenFOAM Programming & Development | 7 | March 23, 2016 05:50 |
OpenCL linear solver for OpenFoam 1.7 (alpha) will come out very soon | qinmaple | OpenFOAM Announcements from Other Sources | 4 | August 10, 2012 12:00 |