CFD Online Discussion Forums

CFD Online Discussion Forums (
-   STAR-CCM+ (
-   -   Moving piston (

hans-p April 27, 2010 09:35

Moving piston
Hi All,

I am trying to simulate a piston moving upwards in a closed cylinder. I want to use a table for the displacement versus time. It is running when I have specified a constant displacement, but as soon as a table is loaded I get a negative volume error.

Also, I have specified a relatively small displacement for now (25mm of 54 mm total length), later I want to compress the fluid more (like in an Internal Combustion engine). Which method should I use to delete the meshes which are too deformed?

Does anyone have an example or a tutorial of a simpel piston moving in a cylinder?

Appreciate any help

MSc student

Vinicius April 27, 2010 19:06

Hi Hans

Unfortunatelly, STAR-CCM+ still doesn't have the complete morphing technology from CD-adapco. For large deformations and cases where cells must be added or removed, you have to use STAR-CD.


Maddin April 29, 2010 00:35

That's not correct! Our support-guy has shown us a CCM simulation of a simple piston compressor. But he wouldn't show us his macro :(

Vinicius April 29, 2010 08:03

I´ve heard about that, but does it have cells that are added and removed?

Maddin April 29, 2010 10:52

As far as I understand it this sample changed the cell size of some cells, after some steps the will removed and then the macro makes a remesh.

Pauli April 29, 2010 11:49

Sounds like the bleeding edge of technology.

hans-p April 30, 2010 07:35

I have got the mesh to move with a table, the file needs to be .csv, the headings needs to be X, Y, Z and time. The time is absolute and the displacement is incremental and in metres. I have even got the mesh to compress a lot without a negative volume error.

I am not deleting/remeshing, but I would like to know how that can be done.

The mesh is polyhedral around the chamber and a mesh is extruded from there with an increasing length. The domain is not cylindrical at this point, it just has a thickness in the plane of the screen.

Here is a picture of the compressed mesh:

Solving it is giving a floating point exception error tough. My CFD lecturer is going to contact CD-adapco to get help for this problem. I will post again if I get it to work. In the meantime any help is appreciated.


Maddin May 1, 2010 02:30

I dont think that it will work with that type of moving mesh.

jopawipr May 26, 2010 08:16


Originally Posted by Maddin (Post 256870)
As far as I understand it this sample changed the cell size of some cells, after some steps the will removed and then the macro makes a remesh.

Do you have an example of this marco?

Maddin June 1, 2010 05:10

No sorry, but I think the problem you have is that you move cells to other positions. I think you must work with 2 regions.
one region for the "top" which don't moves and the other region is the region which moves/size changes.
But I'm not sure, I didn't had time to try it...

anunu June 9, 2010 23:42

You can apply the morpher function to finish the motion behavior of the piston. You can find the tutorial of the morpher motion in the user guide.

abdul099 July 6, 2010 12:20

I haven't tried it on my own, but i talked to people who did it before. One region should be enough, you have to use the morpher and a macro. The displacement is read from the table. The morpher will only move vertices regarding to the values from the table, which deforms the cells.
Monitor the mesh quality, and after some time steps, when the mesh qualitiy becomes worse, the macro should stop the solution. Then the surface will be exported as a *.dbs, imported again, the new surface replaces the old one and you can remesh the "new" geometry.
The old solution will be mapped on the new mesh and solution can start again from this mapped solution.
It might be annoying to have to export, import and remesh again, but it seems to be the best possibility how to get a new surface definition for the remeshing. And remeshing is necessary to ensure an appropriate mesh quality if the displacement is too big to do it in one single step.

Best regards

FalcãoC July 11, 2011 11:51

Hello, I found the same problem. I want to move the valve, but in the start position, tha valve is too close to the wall and if it starts to move this volume would be too much long...

I found a way to trick CCM. I did several meshes in diferent instants and import into my simulation. (I turned off the "physics" te way that this new regions do not run together).

I chose this instants to simulation stop, and I go to REPLACE MESH.
Star CCM saves the fields, but replace the old mesh for the new one. I remember that you must calculate the meshes to its boundarys match exactly in the instant "x" (or some parts of the field will disappear)

I'm sorry my english, I wrote it very fast.

FalcãoC July 11, 2011 13:40

My mistake, it's better to import the new mesh after stop the simulation.


All times are GMT -4. The time now is 18:09.