A new screwConveyor tutorial

This commit is contained in:
HRN
2025-02-20 17:27:36 +03:30
parent 354daab7c5
commit 3954fcf4ab
16 changed files with 89919 additions and 18690 deletions

View File

@ -1,64 +1,50 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (0.0 -0.06 0.001); // lower corner point of the box
max (1.2 1 0.5); // upper corner point of the box
}
decomposition
// Simulation domain: every particle that goes outside this domain will be deleted
globalBox
{
direction z;
min (-0.2 -0.20 -0.01);
max ( 0.2 0.4 1.05);
}
boundaries
{
left
{
type exit;
}
neighborListUpdateInterval 50; /* Determines how often (how many iterations) do you want to
right
{
type exit;
}
rebuild the list of particles in the neighbor list
bottom
{
type exit;
}
of all boundaries in the simulation domain */
top
{
type exit;
}
updateInterval 10; // Determines how often do you want to update the new changes in the boundary
rear
{
type exit;
}
neighborLength 0.004; // The distance from the boundary plane within which particles are marked to be in the boundary list
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodict, reflective
}
bottom
{
type exit; // other options: periodict, reflective
}
top
{
type exit; // other options: periodict, reflective
}
rear
{
type exit; // other options: periodict, reflective
}
front
{
type exit; // other options: periodict, reflective
}
}
front
{
type exit;
}
}

View File

@ -6,47 +6,41 @@ objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
motionModel rotatingAxis; // motion model: rotating object around an axis
// motion model: rotating object around an axis
motionModel rotatingAxis;
rotatingAxisInfo
{
rotAxis
{
p1 (1.09635 0.2010556 0.22313511); // first point for the axis of rotation
p2 (0.0957492 0.201556 0.22313511); // second point for the axis of rotation
omega 3; // rotation speed (rad/s)
startTime 5; // Start time of Geometry Rotating
endTime 30; // End time of Geometry Rotating
p1 (0 0 0.0); // first point for the axis of rotation
p2 (0 0 1.0); // second point for the axis of rotation
omega 3.14; // rotation speed (rad/s)
startTime 1;
endTime 30;
}
}
surfaces
{
helix
{
type stlWall; // type of the wall
file helix.stl; // file name in stl folder
material prop1; // material name of this wall
motion rotAxis; // motion component name
type stlWall; // type of the wall
file screw.stl; // file name in stl folder
material prop1; // material name of this wall
motion rotAxis; // motion component name
}
shell
{
type stlWall; // type of the wall
file shell.stl; // file name in stl folder
material prop1; // material name of this wall
motion none; // motion component name
type stlWall; // type of the wall
file shell.stl; // file name in stl folder
material prop1; // material name of this wall
motion none; // this surface is not moving ==> none
}
}

View File

@ -6,72 +6,34 @@ objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
// positions particles
positionParticles
{
// A list of options are: ordered, random
method empty; // creates the required fields with zero particles (empty).
mortonSorting Yes; // perform initial sorting based on morton
}
setFields
{
/*
Default value for fields defined for particles
These fields should always be defined for simulations with
spherical particles.
*/
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word sphere1; // name of the particle shape
// linear velocity (m/s)
velocity realx3 (0 0 0);
// linear acceleration (m/s2)
acceleration realx3 (0 0 0);
// rotational velocity (rad/s)
rVelocity realx3 (0 0 0);
// name of the particle shape
shapeName word sphere1;
}
selectors
{
shapeAssigne
{
selector stridedRange; // other options: box, cylinder, sphere, randomPoints
stridedRangeInfo
{
begin 0; // begin index of points
end 5000; // end index of points
stride 3; // stride for selector
}
fieldValue // fields that the selector is applied to
{
shapeName word sphere1; // sets shapeName of the selected points to largeSphere
}
}
}
{}
}
positionParticles // positions particles
{
method ordered; // other options: random and empty
mortonSorting Yes; // perform initial sorting based on morton code?
orderedInfo
{
diameter 0.01; // minimum space between centers of particles
numPoints 5000; // number of particles in the simulation
axisOrder (z y x); // axis order for filling the space with particles
}
regionType box; // other options: cylinder and sphere
boxInfo // box information for positioning particles
{
min (-0.08 -0.08 0.015); // lower corner point of the box
max (0.08 0.08 1); // upper corner point of the box
}
}

View File

@ -6,29 +6,37 @@ objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run screwConveyor;
dt 0.0001; // time step for integration (s)
dt 0.00002; // time step for integration (s)
startTime 0; // start time for simulation
startTime 0; // start time for simulation
endTime 20; // end time for simulation
endTime 20; // end time for simulation
saveInterval 0.05; // time interval for saving the simulation
saveInterval 0.025; // time interval for saving the simulation
timePrecision 6; // maximum number of digits for time folder
timePrecision 4; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
writeFormat binary; // field files will be saved in binary format
// A list of options: AB2, AB3, AB4, AB5
integrationMethod AdamsBashforth4; // integration method
// overrides the default behavior
includeObjects (diameter);
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
excludeObjects (rVelocity.dy1 rVelocity.dy2 rVelocity.dy3
pStructPosition.dy1 pStructPosition.dy2 pStructPosition.dy3
pStructVelocity.dy1 pStructVelocity.dy2 pStructVelocity.dy3);
integrationMethod AdamsBashforth2; // integration method
timersReport Yes; // report timers?
writeFormat ascii; // data writting format (ascii or binary)
timersReport Yes; // report timers (Yes or No)
timersReportInterval 0.01; // time interval for reporting timers
timersReportInterval 0.1; // time interval for reporting timers