CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   FLUENT (https://www.cfd-online.com/Forums/fluent/)
-   -   Negative Cell Volume Dynamic Mesh (Relative Motion) (https://www.cfd-online.com/Forums/fluent/241442-negative-cell-volume-dynamic-mesh-relative-motion.html)

farich_d February 27, 2022 03:07

Negative Cell Volume Dynamic Mesh (Relative Motion)
 
Hello, im doing some research about hydrokinetic turbine (transient and 2dimensional), where i attach moving flap in each hydrofoil and control its movement using UDF. The flap moving relatively to the rotation domain.

I always getting "negative cell volume" error while previewing mesh motion immediately (at early time step).

Then i tried to move only the flap without rotate the rotating domain,
and the preview mesh motion can running smoothly and shows how the flap move without getting "negative cell volume" error.

But when i rotate the rotating domain, while the flap is also moving, i keep getting "negative cell volume" error.

here is UDF

#include "udf.h"

DEFINE_CG_MOTION(bukatutup,dt,cg_vel,cg_omega,time ,dtime)

{
real t = CURRENT_TIME;
real pi;
pi = 3.141592654;
NV_S (cg_omega, =, 0.0);

if ((t > 0) && (t <= (0.5)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = 1.125*pi;
}

if ((t > (0.5)) && (t <= (1)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = -1.125*pi;
}

if ((t > (1)) && (t <= (1.5)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = 1.125*pi;
}

if ((t > (1.5)) && (t <= (2)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = -1.125*pi;
}

if ((t > (2)) && (t <= (2.5)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = 1.125*pi;
}

if ((t > (2.5)) && (t <= (3)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = -1.125*pi;
}

if ((t > (3)) && (t <= (3.5)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = 1.125*pi;
}

if ((t > (3.5)) && (t <= (4)))
{
cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = -1.125*pi;
}

}

DEFINE_CG_MOTION(domainrot,dt,cg_vel,cg_omega,time ,dtime)
{
real omega_z;

omega_z = 1.570796;

cg_vel[0] = 0.0;
cg_vel[1] = 0.0;
cg_vel[2] = 0.0;

cg_omega[0] = 0.0;
cg_omega[1] = 0.0;
cg_omega[2] = omega_z;
}

destroy March 5, 2022 18:22

In Preview mesh, maybe you are setting too large timestep size, and the rotation per single timestep is too large to be properly absorbed by the mesh motion module. Maybe test with smaller timestep size.


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