Dynamic Mesh
Dynamic Mesh
(FLUENT 6.1)
Christoph Hiemcke
9 June 2004
Purpose of this session
• Show you how to use the controls for the Dynamic Mesh
(DM) model, based on a few examples
Slide 0-1
Agenda
Slide 1-1
What is the Dynamic Mesh (DM) Model?
Examples:
z Automotive piston
moving inside a
cylinder
z A flap moving on
an airplane wing
z A valve opening
and closing
z An artery
expanding and
contracting
Slide 1-2
Why Use the Dynamic Mesh Model?
Used when rigid boundaries move with respect to each other, e.g.,
Slide 1-3
Dynamic Mesh (DM) Model: Schemes
Layering
Spring Smoothing
Local Remeshing
Slide 1-4
II. Layering for Linear Motion
Slide 2-1
Layering: Introduction
Slide 2-2
Layering Example 1: Piston
For the piston, the piston wall is
moved up and down;
The motion is governed by the “in-
cylinder” controls (see panel below):
Complex geometry near cylinder head
is tri meshed
Slide 2-3
Layering Example 1: Piston
Slide 2-4
Layering Example 1: Piston
Split if:
Collapse if:
h > (1 + α S )hideal
h < α c hideal
Slide 2-5
Layering Example 1: Piston
Constant Height:
Every new cell layer has the same height;
Constant Ratio:
Maintain a constant ratio of cell heights
between layers (linear growth);
Useful when layering is done in curved Constant
domains (e.g. cylindrical geometry). Height
Edges “i” and
“i+1” have
same shape
Constant
Piston at Ratio
Initially, top-most Edge “i+1”
piston at position is an average
bottom-most
of edge “i”
position
and the
Edge “i” piston shape
Slide 2-6
Layering Example 1: Piston
Definition of the
dynamic zone:
Slide 2-8
Layering Example 2: Conveyor Belt
A box on a conveyor
belt moves through a
curing oven;
Layering is limited Cool exterior
to the fluid zone
adjacent to the box;
Hot air
Cell layers in the
dynamic zone slide Oven interior Static zone
past the static zone
at a non-conformal, box Dynamic zone
sliding grid
interface.
Grid interface
Slide 2-9
Layering Example 2: Conveyor Belt
Layering is
limited to the
fluid zone
adjacent to the
box;
Cell layers in
the dynamic
zone slide past
the static zone
at a non-
conformal,
sliding grid
interface.
Slide 2-10
Layering Example 2: Conveyor Belt
Dynamic zone
Slide 2-11
Layering Example 2: Conveyor Belt
Slide 2-12
Layering Example 2: Conveyor Belt
x-velocity
(v_x 1.0 1.0)
(m/s)
)
1.0
Time (sec)
0.0 15.0
Slide 2-13
Layering Example 2: Conveyor Belt
Cell layers in the dynamic zone slide past the static zone at a non-
conformal, sliding grid interface;
Define > Grid Interfaces
The geometry of the interface is shown on the next slide.
Slide 2-14
Layering Example 2: Conveyor Belt
interface-top fluid-static
(three line
segments)
fluid-moving
interface-bottom
(single line
segment)
Slide 2-15
Layering Example 2: Conveyor Belt
Slide 2-16
Layering Example 2: Conveyor Belt
Cells are being split or collapsed at two edges on the domain boundary,
to the left and right of the box;
The two edges are defined as “stationary zones”.
“fluid-moving”
Slide 2-17
Layering Example 2: Conveyor Belt
Slide 2-18
Layering Example 2: Conveyor Belt
Let’s look at the motion again:
Slide 2-19
Layering: Further Examples
Fuel injector;
Flow solution on the next slide.
Slide 2-20
Layering: Further Examples
Fuel injector;
Flow solution
(velocity contours).
Slide 2-21
Layering: Further Examples
2-stroke engine;
Layering.
Premixed combustion
(temperature contours)
Slide 2-22
Layering: Further Examples
Vibromixer;
Layering;
Flow solution on
next slide.
Slide 2-23
Layering: Further Examples
Vibromixer;
Layering;
Flow solution
(contours of
velocity).
Slide 2-24
Agenda
Slide 3-1
Spring Smoothing: Introduction
Slide 3-2
Spring Smoothing
Slide 3-3
Spring Smoothing Ex. 1: Irregular piston
The bottom wall (“piston”)
moves up and down;
Motion is via “in-cylinder”
tool
Smoothing uses default
parameters in this case.
piston
Slide 3-4
Spring Smoothing Ex. 1: Irregular piston
The bottom wall (“piston”)
moves as a rigid body;
Under “Meshing Options” the
ideal cell height is specified as
0.02 meters;
What will happen?
“piston”
Slide 3-5
Spring Smoothing Ex. 1: Irregular piston
Slide 3-6
Spring Smoothing Ex. 1: Irregular piston
Slide 3-8
Spring Smoothing Ex. 1: Irregular piston
Everything OK!
One can also
project onto
planes or
user-defined
edges/surfaces.
Slide 3-9
Spring Smoothing Ex. 1: Irregular Piston
What happens if we
change the spring
constant, k ?
We saw what
happens with the
default value:
k=1
The effect of the
moving wall is felt
mostly near the
moving wall, but not
at larger distances.
k=1
Slide 3-10
Spring Smoothing Ex. 1: Irregular Piston
k ranges from 0 to 1;
Let us try k = 0,
which means the
stiffness is maximal;
The effect of the
moving wall is felt
everywhere, even
near the top wall.
k=0
Slide 3-11
Spring Smoothing Ex. 1: Irregular Piston
k ranges from 0 to 1;
Let us try k = 0.5,
which implies a
medium stiffness;
The effect of the
moving wall is
strongly felt
throughout the
bottom half of the
domain.
k = 0.5
Slide 3-12
Spring Smoothing Ex. 1: Irregular Piston
Slide 3-13
Spring Smoothing Ex. 1: Irregular Piston
So far, we used β = 1,
the default value;
This means the
interior nodes fully
affect the movement
of the nodes on the
deforming boundary
wall;
The nodes on the
deforming wall move
in such a way as to
create nice cells
nearby.
β=1
Slide 3-14
Spring Smoothing Ex. 1: Irregular Piston
If we use β = 0, the
nodes on the
deforming boundary
wall will not move at
all;
We quickly get
degenerate cells next
to the deforming
boundary.
β=0
Slide 3-15
Spring Smoothing Ex. 1: Irregular Piston
β = 0.5
Slide 3-16
Agenda
Slide 4-1
Local Remeshing: Introduction
Slide 4-3
Local Remeshing: Introduction
Slide 4-4
Local Remeshing Example 1:
Butterfly Valve
Slide 4-6
Local Remeshing Ex. 1: Butterfly Valve
((butterfly 6 point)
(time 0 0.6 1.0 2.2 2.6 3.2)
(omega_z 0.0 1.571 1.571 -1.571 -1.571 0.0)
)
Omega_z (rad/s)
The valve first rotates
CCW through 90 1.571
degrees, then CW; 3.2
0.0
The maximum 0.6 Time (sec)
rotational speed is
15 RPM.
Slide 4-7
Local Remeshing Ex. 1: Butterfly Valve
Slide 4-10
Local Remeshing Ex. 1: Butterfly Valve
We succeed with
a preview time
step of 0.005 sec
Let us analyze
the mesh motion,
to make
improvements
later
Generally, we
look for:
Cell quality
(skewness)
Jumps in cell
size
Cell count
Slide 4-12
Local Remeshing Ex. 1: Butterfly Valve
Before:
Effect of minimum
cell volume:
We had used 2e-6 m3
before;
Based on the
smallest cell
dimension (3 mm),
we obtain a volume
of 4.5e-6 m3
Here we have tried
5e-6 m3 (to help
avoid the “wake” of
small cells).
Size jump
More efficient use of cells
Slide 4-14
Local Remeshing Ex. 1: Butterfly Valve
Before:
Size jumps
Slide 4-15
Local Remeshing Ex. 1: Butterfly Valve
Remeshing controls
Control via min. cell volume
summary:
Use the minimum cell
volume to steer
overall size
uniformity;
Use the ideal height
to steer cell size
adjacent to the
moving wall;
We will gain more
control by using size
functions (next
lecture).
Slide 4-17
Local Remeshing: Short Example 2/5
An HVAC valve:
Remeshing and
smoothing;
Nonconformal
grid interface
(circular arc);
Flow solution on
next slide.
Slide 4-18
Local Remeshing: Short Example 3/5
Automotive
valve:
Remeshing,
smoothing, and
layering;
4 nonconformal
grid interfaces
(vertical lines);
The gaps are
fully blocked;
Slide 4-19
Local Remeshing: Short Example 4/5
Gear pump
Slide 4-20
Local Remeshing: Short Example 5/5
Positive
displacement
pump
Slide 4-21
Agenda
Slide 5-1
Size Functions: Introduction
Slide 5-2
Remeshing & Size Functions: Algorithm
1. At the beginning of every time step:
Mark all cells whose skewness is above “Maximum Cell Skewness”
2. If ( time = (“Size Remesh Interval”) ⋅ ∆t ) then
Mark all cells whose volume is below “Minimum Cell Volume”
or above “Maximum Cell Volume”
Mark all cells whose size is above or below the local value of the size function
3. Locally remesh only the marked cells:
“Must Improve Skewness”: remesh only if the resulting cell will be less skewed than
before (almost always selected);
Several meshing strategies are tried to arrive at the best result (marked cells are
agglomerated/fused into cavities, which are then remeshed [initialize, refine]);
4. Move the object/boundary;
5. Perform smoothing iterations (if smoothing is turned on);
6. Interpolate the solution onto the new mesh;
Slide 5-3
Remeshing & Size Functions, Example 1:
Airdrop
Let us use the example of an airdrop of a
rescue pod;
We select “remeshing”, “sizing function”,
and “Must Improve Skewness”;
We only want to see the effect of the size
function, so we:
Set the minimum and maximum cell
volumes to extreme values, so that no
cells will be marked based on volume;
Set the maximum cell skewness very
high, so that no cells will be marked based
on skewness;
Accept the other defaults;
Slide 5-4
Remeshing & Size Functions, Example 1:
Airdrop
The defaults work quite well overall, except for some squished cells below
and behind the pod, and except for the creation of spots of small cells;
The problem here is that as the pod draws near, those cells become marked
based on the size function; since they were originally moderately skewed, the
remeshing improves their skewness, so they end up being remeshed,
unfortunately with small cells.
Cluster of
small cells
Squished
cells
Slide 5-5
Remeshing & Size Functions, Example 1:
Airdrop
One cannot improve the situation significantly by changing the settings for
the size function, or by changing remeshing parameters;
We can avoid the squished cells by making the influence of the pod felt at
larger distances from the pod: we turn on smoothing, with the default spring
constant of 0.05:
With
smoothing!
Slide 5-6
Remeshing & Size Functions, Example 1:
Airdrop
Finally, let us add all of our previous experience: we keep the smoothing
(k = 0.05), but also change the remeshing controls to the best values we
had found: Vmin = 0.006 m3, Vmax = 1, maximum skewness = 0.65.
The result is good, and computes quickly! During certain time steps, one
does still see some clusters of small cells.
With size
functions!
Best
mesh
without
size
functions
Slide 5-7
Remeshing & Size Functions: Tips, Limitations
We can even plot contours of the size function (i.e., of sizeP):
In the TUI, use solve/set/expert and then answer as shown below;
This makes available the plotting of contours of background sizing function:
Slide 5-8
Remeshing & Size Functions: Tips, Limitations
Here is a plot of contours of the size function (i.e., of sizeP) for the airdrop:
This is a useful
debugging tool:
Slide 5-9
Agenda
Slide 6-1
6 DOF Coupled Motion: Introduction
Slide 6-2
6 DOF; Example 1: Airdrop
We will learn about the 6 DOF UDF by applying it to the airdrop of the rescue pod;
Let us begin by making changes to the UDF before we compile it. The user
defines several parameters: we begin with the ID of the wall of the moving object
and with the mass and second moments in the local coordinate system:
Slide 6-3
6 DOF; Example 1: Airdrop
The user continues by adjusting the ejector forces in the global coordinate system:
/****************************************************************/
* Add ejector forces
*****************************************************************/
static void
add_injector_forces (real *x_cg, real *euler_angle, real *force, real *momentum)
{
/* (needs to be updated) */
/* distances from body to ejectors (front/back) */
register real dfront = fabs (x_cg[2] - (0.179832 * euler_angle[1]));
register real dback = fabs (x_cg[2] + (0.329184 * euler_angle[1]));
Message0 ("\nfront/back distance ejectors = %g, %g", dfront, dback);
Slide 6-4
6 DOF; Example 1: Airdrop
/*******************************************************
* Main 6DOF UDF
*******************************************************/
DEFINE_CG_MOTION(six_dof, dt, cg_vel, cg_omega, time, dtime)
/*
six_dof = name shown in Fluent GUI
dt = thread
cg_vel = old/updated cg velocity (global)
cg_omega = old/updated angular velocity (global)
time = current time
dtime = time step
*/
{
real f_glob[3]; /* Total forces (global) */
Slide 6-5
6 DOF; Example 1: Airdrop
The user finally adjusts the gravity vector in the global coordinate system:
Slide 6-6
6 DOF; Example 1: Airdrop
Slide 6-7
6 DOF; Example 1: Airdrop
Having made the changes to the 6 DOF UDF, we are ready to hook it into
the case;
We load the case we had already set up (for which we had driven the
motion with a profile);
Then we compile the 6 DOF UDF as shown: first add the UDF
(six_dof_airdrop.c), then build a library (libudf-airdrop), and finally load
that library:
Slide 6-8
6 DOF; Example 1: Airdrop
Next we revisit the definition of the dynamic zones, and select “six_dof” as
the UDF that drives the motion of the pod’s walls (wall-object) and the
fluid zone (fluid-bl) consisting of the quad cells in the boundary layer
adjacent to the rescue pod:
“wall-object”
“fluid-bl”
Slide 6-9
6 DOF; Example 1: Airdrop
Slide 6-11
6 DOF coupled motion;
short examples (1 of 4)
Store dropped from a
delta wing (NACA
64A010) at Mach 1.2;
Ejector forces
dominate for a short
time;
All-tet mesh;
Smoothing;
remeshing with size
function;
Fluent results agree
very well with wind
tunnel results!
Tutorial exists.
Slide 6-12
6 DOF coupled motion;
short examples (2 of 4)
Projectile
moving inside
and out of a
barrel;
Initial patch in
the chamber
drives the
motion;
User-defined real
gas law (Abel-
Nobel Equation
of State);
Layering;
Tutorial exists.
Slide 6-13
Outer Interface (3 edges)
Inner Interface (2 edges)
static
mesh
zone
Muzzle
brake
barrel
bullet
axis
static
mesh non- moving mesh zone (3 faces)
zone conformal
interface
Slide 6-14
6 DOF coupled motion;
short examples (3 of 4)
How well do the 6DOF Final condition at shot exit
UDF and the dynamic mesh
(DM) model work?
Consider a classic problem:
the Lagrange gun;
Initial patch in the chamber
drives the motion of the
50 kg bullet/piston;
User-defined real gas law
(Abel-Nobel Equation of
State);
Layering; Initial condition at time t = 0
Superb agreement (red and
green data) all the way to
shot exit!
Slide 6-15
Agenda
Slide 7-1
DEFINE_CG_MOTION : Introduction
In the previous lecture, we used the 6DOF UDF to couple the motion of
objects to the flow solution;
We saw that the heart of the 6DOF UDF is the DEFINE_CG_MOTION macro;
The macro simply governs how far the object will move/rotate during each time step
(it is called every time step);
The object moves as a rigid body: all nodes and boundaries/walls associated with it
move as one, without any relative motion (deformation);
The translational and rotational motions of the rigid body are specified with respect to
the CG (Center of Gravity) of the body;
The macro works for both prescribed and coupled motions.
Slide 7-2
DEFINE_CG_MOTION;
Example 1: Airdrop
Slide 7-3
DEFINE_CG_MOTION;
Example 1: Airdrop
Slide 7-4
DEFINE_CG_MOTION;
Example 1: Airdrop
Slide 7-5
DEFINE_CG_MOTION; Example 2: Pump
Slide 7-6
DEFINE_CG_MOTION; Example 2: Pump
rot_int (the circular
The figure shows the labels wall and rot_fluid cap on the cylinder)
for the different zones;
The cylinder rotates, so that
rot_int slides over stat_int;
rot_int and stat_int form a
nonconformal grid interface; rot-wall-bot stat_int
The cylinder rotates because
we define rot_fluid as a moving
zone (SMM, sliding mesh
wall:001
method) with a rotational speed
of 10 RPM about the z-axis
(see next slide) inlet
Slide 7-7
DEFINE_CG_MOTION; Example 2: Pump
The bottom figure shows how we cause
the cylinder to rotate;
In addition, we cause the cylinder to
reciprocate by moving the piston face
rot_wall_bot as a rigid body – also see
the UDF on the next slide.
Slide 7-8
DEFINE_CG_MOTION; Example 2: Pump
No space !
The UDF
#include "udf.h“
prescribes the DEFINE_CG_MOTION(piston, dt, vel, omega, time, dtime)
rigid body {
motion of the real A=2.0; /*Amplitude of sine oscillation with period T*/
piston face as a real n=10.0; /*rpm of pump*/
sinusoidal real phi=-45.0; /*phase offset*/
function of phi=phi*M_PI/180;
time; /* set z-component of velocity */
vel[0] = 0.0;
vel[1] = 0.0;
vel[2] = 2.0*M_PI*n*A/60.0*cos(2.0*M_PI*n*time/60.0-phi);
omega[0] = 0.0;
omega[1] = 0.0;
omega[2] = 0.0;
}
Slide 7-9
DEFINE_CG_MOTION; Example 2: Pump
The physical piston is
driven by connecting
rods that are
connected to a thrust
plate (wobble plate)
that acts like a
camshaft;
This example has
demonstrated how to
combine the dynamic
mesh (DM) model
with the sliding mesh
model (SMM).
Slide 7-10
VIII: Controlling Projection onto
Deforming Boundaries using
DEFINE_GEOM
Slide 8-1
DEFINE_GEOM : Introduction
This macro allows us to define geometry that we can project the boundary
nodes of a mesh onto. It is used in conjunction with deforming boundary
zones;
We had previously projected the boundary nodes of a mesh onto a circular
cylinder; only the circular cylinder and the plane are available through the
GUI; for more complex geometry, one must use this macro;
Such a projection allows the nodes to slide along the walls of the physical
object, or along other boundary zones – we had called such zones deforming
boundary zones, or simply deforming zones;
We also refer to the sliding of the nodes on these deforming zones as the
repositioning of nodes;
Slide 8-2
DEFINE_GEOM; Example 1:
Butterfly Valve
Slide 8-3
DEFINE_GEOM; Example 1:
Butterfly Valve
Best result without
The problem had been that the sizing functions
(Slide 4-19)
clustered cells on the housing could
not follow the motion of the valve;
Let us now allow them to slide
along the arcs;
The equation of the circular housing
is:
Best result with
x +y =R
2 2 2
sizing functions
(Slide 5-14)
Or:
y = r 2 − x2
Slide 8-4
DEFINE_GEOM; Example 1:
Butterfly Valve
y = position[1];
if (y >= 0.0)
position[1] = sqrt(R*R - position[0]*position[0]);
y = r 2 − x2 else
position[1] = - sqrt(R*R - position[0]*position[0]);
}
Slide 8-5
DEFINE_GEOM; Example 1:
Butterfly Valve
Slide 8-6
DEFINE_GEOM; Example 1:
Butterfly Valve
Slide 8-7
DEFINE_GEOM; Example 1:
Butterfly Valve
Slide 8-8
DEFINE_GEOM; Example 1:
Butterfly Valve
Here is the
animation
(320 frames at
0.005 seconds
each);
Note how the
nodes slide
along the
housing.
Slide 8-9
IX: Controlling the Motion of
Individual Nodes using
DEFINE_GRID_MOTION
Slide 9-1
DEFINE_GRID_MOTION : Introduction
This macro allows us to move any nodes belonging to the fluid zones or to the
boundary zones;
The macro offers the maximum level of control over the deforming mesh;
One is able to combine rigid body motion, deformations, and relative motions,
and one may use projection zones at the same time;
The macro is called every time step;
Slide 9-2
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
In this example, we
sinusoidally (in time
and space) change the
shape of a small
portion of the top
skin, just aft of the
rounded leading edge;
This is a fluid-
structures interaction
(FSI) problem;
Slide 9-3
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
This image shows the
location of the skin “wall-compliant”
segment that will be
moved – it is called
“wall-compliant”, and
is shown in red;
Slide 9-4
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
Here we are setting up the
dynamic zone;
As the wall section moves,
the all-quad mesh adjacent
to it will be smoothed, so
we specify spring
smoothing as the dynamic
mesh scheme (we also
need to use an rpsetvar).
Slide 9-5
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
As the wall
section
moves, the
all-quad mesh
adjacent to it
is smoothed;
The spring
constant was
0.5
Slide 9-6
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
#include "udf.h"
So what does #define L 0.4 /* Length of the compliant strip (m) */
the UDF look #define NUM_PERIODS 20 /* Number of bumps in the surface */
like? #define AMP 0.00070 /* Amplitude (meters) */
#define ORIGINCX 0.08 /* Coordinates of the upstream end */
This UDF is a #define ORIGINCY 0.08 /* of the compliant strip */
bit trickier; #define FREQ 1000.0 /* Frequency in Hertz (cycle/sec) */
We need to
show it over DEFINE_GRID_MOTION(compliant, domain, dt, time, dtime)
several slides: {
Thread *tf = DT_THREAD (dt);
face_t f;
Node *node_p;
real X_TILD, X_TILD_STAR, Y_TILD;
real A;
int n;
Slide 9-7
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
/* Set/activate the deforming flag on adjacent cell zone, which */
Page 2 (of 4) /* means that the cells adjacent to the deforming wall will also be */
of the UDF: /* deformed, in order to avoid skewness. */
Slide 9-8
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
/* Loop over the deforming boundary zone's faces; */
/* inner loop loops over all nodes of a given face; */
Page 3 (of 4)
of the UDF: begin_f_loop (f, tf)
{
f_node_loop (f, tf, n)
{
node_p = F_NODE (f, tf, n);
/* Update the current node only if it has not been previously visited: */
if (NODE_POS_NEED_UPDATE (node_p))
Slide 9-9
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
/* Set flag to indicate that the current node's */
/* position has been updated, so that it will not be */
Page 4
/* updated during a future pass through the loop: */
(of 4) of
the UDF: NODE_POS_UPDATED (node_p);
X_TILD = NODE_X (node_p) - ORIGINCX;
New y- X_TILD_STAR = NUM_PERIODS *2.0* M_PI * X_TILD /L;
position of Y_TILD = A * ( 1.0 + sin (X_TILD_STAR - 0.5 * M_PI) );
node_p NODE_Y (node_p) = Y_TILD + ORIGINCY;
} /* end if */
} /* end node loop */
} /* end face loop */
end_f_loop (f, tf);
}
/* End */
Slide 9-10
DEFINE_GRID_MOTION; Example 1:
Compliant Wing Profile
Here is the
animation
again;
As the wall
section moves,
the all-quad
mesh adjacent
to it is
smoothed;
In this example,
we only moved
the nodes on a
wall zone;
Slide 9-11
DEFINE_GRID_MOTION:
Fly with Beating Wings
Slide 9-12
Agenda
Slide 10-1
UDF Example:
Valve with Membrane
Let us study the set-
up for a problem that
involves a butterfly
valve and a flexible
membrane;
We use three UDFs:
1. CG_MOTION to
spin the valve
2. CG_GEOM for
projecting the
topmost nodes onto
the horizontal top
wall
3. GRID_MOTION
to move the
membrane
Slide 10-2
UDF Examples:
Valve with Membrane
#include "udf.h“
#define omega 1.0 /* rotational speed, rad/sec */
#define R 0.109 /* radius of the arc, meters */
DEFINE_CG_MOTION(butterfly_flex_UDF, dt, cg_vel, cg_omega, time, dtime)
{
cg_vel[0] = 0.0;
Here is a cg_vel[1] = 0.0;
listing of the cg_vel[2] = 0.0;
Valve
combined cg_omega[0] = 0.0; rotation
UDF cg_omega[1] = 0.0;
cg_omega[2] = omega;
(Slide 1 of 3): }
Slide 10-3
UDF Examples:
Valve with Membrane
Slide 10-4
UDF Examples:
Valve with Membrane
begin_f_loop (f, tf)
{
f_node_loop (f, tf, n)
{
Listing of the node_p = F_NODE (f, tf, n);
if (NODE_POS_NEED_UPDATE (node_p))
combined {
UDF NODE_POS_UPDATED (node_p);
(Slide 3 of 3): x = NODE_X (node_p); Flexing
ymag = sqrt (R*R - x*x) + 0.03; membrane
yfull = ymag - 0.1;
y = - 0.1 + yfull * sin(theta);
NODE_Y (node_p) = y;
}
}
}
end_f_loop (f, tf);
}
Slide 10-5
UDF Examples:
Valve with Membrane
Here is the animation
again;
The motions of the
valve and the
membrane are
synchronized;
Smoothing and
remeshing with size
functions were used;
The preview
consisted of 626 time
steps of 0.005 sec
each.
Applications:
biomed, synthetic
jets, etc.
Slide 10-6
Agenda
Slide 11-1
New Dynamic Mesh Features in FLUENT 6.2:
2.5 D Remeshing/Smoothing
Slide 11-2
New Dynamic Mesh Features in FLUENT 6.2:
Boundary Region Remeshing (Slide 1 of 2)
– Single zone
– Closed loop
Slide 11-3
New Dynamic Mesh Features in FLUENT 6.2:
Boundary Region Remeshing (Slide 2 of 2)
Slide 11-4
New Dynamic Mesh Features in FLUENT 6.2:
Remeshing/Smoothing with Dynamic Adaption
Limitation:
Dynamic
adaption
cannot be used
in conjunction
with layering
or with
boundary
remeshing
Slide 11-5
New Dynamic Mesh Features in FLUENT 6.2:
Layering at Periodics
Slide 11-6
New Dynamic Mesh Features in FLUENT 6.2:
Full Compatibility with VOF
Slide 11-8
New Dynamic Mesh Features in FLUENT 6.2:
Dynamic Mesh Events
Events based on time (not just based on the crank angle as before), and
without having to use the in-cylinder tools (where they were called in-
cylinder events);
New events:
Activate/Deactivate cell zones
Change URF
Slide 11-9
New Dynamic Mesh Features in FLUENT 6.2:
Miscellaneous
Improved parallel performance, in particular IC
Reduced number of cell migrations during mesh update
Encapsulation of non-conformals not required anymore
Zone motion preview
Motion history for 6-DOF applications
Slide 11-10
FLUENT 6.2: Sneak Preview
Slide 11-11
FLUENT 6.2: Sneak Preview
Slide 11-12
FLUENT 6.2: Sneak Preview
Slide 11-13
How to obtain support for using the
Dynamic Mesh (DM) model
• Study the manuals;
• Work through the dynamic mesh tutorials;
• Attend Fluent’s advanced training on the dynamic mesh;
• Search the Solutions using the Online Technical Support
(OTS) at www.fluentusers.com ;
• Create a case using the Online Technical Support (OTS) at
www.fluentusers.com ; the case will be answered by
Fluent’s support staff, and your support engineer may
contact the dynamic mesh developers if difficulties arise;
• If the problem is particularly intimidating, consider having
Fluent’s Consulting Team develop a prototype for you
Slide 0-3
Purpose of this session
• Show you how to use the controls for the Dynamic Mesh
(DM) model, based on a few examples
Questions?
Slide 0-4
Dynamic Mesh Case Studies
(FLUENT 6.1)
Christoph Hiemcke
9 June 2004