mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-08-07 03:37:02 +00:00
Normal vector of wall is included into the wall velocity calculations
This commit is contained in:
@ -251,6 +251,8 @@ struct pwInteractionFunctor
|
|||||||
realx3 xi = pos_[i];
|
realx3 xi = pos_[i];
|
||||||
|
|
||||||
realx3x3 tri = triangles_(tj);
|
realx3x3 tri = triangles_(tj);
|
||||||
|
const realx3& normW = triangles_.normal(tj);
|
||||||
|
|
||||||
real ovrlp;
|
real ovrlp;
|
||||||
realx3 Nij, cp;
|
realx3 Nij, cp;
|
||||||
|
|
||||||
@ -262,7 +264,7 @@ struct pwInteractionFunctor
|
|||||||
|
|
||||||
int32 mInd = wTriMotionIndex_[tj];
|
int32 mInd = wTriMotionIndex_[tj];
|
||||||
|
|
||||||
auto Vw = motionModel_(mInd, cp);
|
auto Vw = motionModel_(mInd, cp, normW);
|
||||||
|
|
||||||
//output<< "par-wall index "<< i<<" - "<< tj<<endl;
|
//output<< "par-wall index "<< i<<" - "<< tj<<endl;
|
||||||
|
|
||||||
|
@ -238,7 +238,9 @@ struct pwInteractionFunctor
|
|||||||
real Rj = 10000.0;
|
real Rj = 10000.0;
|
||||||
realx3 xi = pos_[i];
|
realx3 xi = pos_[i];
|
||||||
|
|
||||||
realx3x3 tri = triangles_(tj);
|
const realx3x3 tri = triangles_(tj);
|
||||||
|
const realx3& normW = triangles_.normal(tj);
|
||||||
|
|
||||||
real ovrlp;
|
real ovrlp;
|
||||||
realx3 Nij, cp;
|
realx3 Nij, cp;
|
||||||
|
|
||||||
@ -250,7 +252,7 @@ struct pwInteractionFunctor
|
|||||||
|
|
||||||
int32 mInd = wTriMotionIndex_[tj];
|
int32 mInd = wTriMotionIndex_[tj];
|
||||||
|
|
||||||
auto Vw = motionModel_(mInd, cp);
|
auto Vw = motionModel_(mInd, cp, normW);
|
||||||
|
|
||||||
//output<< "par-wall index "<< i<<" - "<< tj<<endl;
|
//output<< "par-wall index "<< i<<" - "<< tj<<endl;
|
||||||
|
|
||||||
|
@ -85,15 +85,15 @@ public:
|
|||||||
~ModelInterface()=default;
|
~ModelInterface()=default;
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 pointVelocity(uint32 n, const realx3& p)const
|
realx3 pointVelocity(uint32 n, const realx3& p, const realx3& wallNormal)const
|
||||||
{
|
{
|
||||||
return components_[n].linVelocityPoint(p);
|
return components_[n].linVelocityPoint(p, wallNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 operator()(uint32 n, const realx3& p)const
|
realx3 operator()(uint32 n, const realx3& p, const realx3& wallNormal)const
|
||||||
{
|
{
|
||||||
return pointVelocity(n,p);
|
return pointVelocity(n, p, wallNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
|
@ -28,7 +28,7 @@ pFlow::conveyorBelt::conveyorBelt(const dictionary& dict)
|
|||||||
if(!read(dict))
|
if(!read(dict))
|
||||||
{
|
{
|
||||||
fatalErrorInFunction<<
|
fatalErrorInFunction<<
|
||||||
" error in reading conveyorBelt from dictionary "<< dict.globalName()<<endl;
|
" error in reading from dictionary "<< dict.globalName()<<endl;
|
||||||
fatalExit;
|
fatalExit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -37,7 +37,21 @@ FUNCTION_H
|
|||||||
bool pFlow::conveyorBelt::read(const dictionary& dict)
|
bool pFlow::conveyorBelt::read(const dictionary& dict)
|
||||||
{
|
{
|
||||||
|
|
||||||
tangentVelocity_ = dict.getVal<realx3>("tangentVelocity");
|
linearVelocity_ = dict.getVal<real>("linearVelocity");
|
||||||
|
normal_ = dict.getVal<realx3>("normal");
|
||||||
|
|
||||||
|
if(normal_.length() > verySmallValue)
|
||||||
|
{
|
||||||
|
normal_.normalize();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fatalErrorInFunction<<
|
||||||
|
" normal vector in "<<
|
||||||
|
dict.globalName() <<
|
||||||
|
" cannot be zero vector "<<endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -45,12 +59,19 @@ bool pFlow::conveyorBelt::read(const dictionary& dict)
|
|||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool pFlow::conveyorBelt::write(dictionary& dict) const
|
bool pFlow::conveyorBelt::write(dictionary& dict) const
|
||||||
{
|
{
|
||||||
if( !dict.add("tangentVelocity", tangentVelocity_) )
|
if( !dict.add("linearVelocity", linearVelocity_) )
|
||||||
{
|
{
|
||||||
fatalErrorInFunction<<
|
fatalErrorInFunction<<
|
||||||
" error in writing tangentVelocity to dictionary "<< dict.globalName()<<endl;
|
" error in writing tangentVelocity to dictionary "<< dict.globalName()<<endl;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!dict.add("normal", normal_))
|
||||||
|
{
|
||||||
|
fatalErrorInFunction<<
|
||||||
|
" error in writing normal to dictionary "<< dict.globalName()<<endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +86,7 @@ bool pFlow::conveyorBelt::read(iIstream& is)
|
|||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool pFlow::conveyorBelt::write(iOstream& os)const
|
bool pFlow::conveyorBelt::write(iOstream& os)const
|
||||||
{
|
{
|
||||||
os.writeWordEntry("tangentVelocity", tangentVelocity_);
|
os.writeWordEntry("linearVelocity", linearVelocity_);
|
||||||
return true;
|
os.writeWordEntry("normal", normal_);
|
||||||
|
return true;
|
||||||
}
|
}
|
@ -41,65 +41,76 @@ class conveyorBelt
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
realx3 tangentVelocity_{0, 0, 0};
|
/// @brief linear velocity of the conveyor belt
|
||||||
|
real linearVelocity_{0};
|
||||||
|
|
||||||
|
/// normal vector of the velocity plane.
|
||||||
|
/// The velocity vector is tangent to this plane (velocity plane).
|
||||||
|
realx3 normal_{1,0,0};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TypeInfoNV("conveyorBelt");
|
TypeInfoNV("conveyorBelt");
|
||||||
|
|
||||||
FUNCTION_HD
|
FUNCTION_HD
|
||||||
conveyorBelt()=default;
|
conveyorBelt()=default;
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
explicit conveyorBelt(const dictionary& dict);
|
explicit conveyorBelt(const dictionary& dict);
|
||||||
|
|
||||||
|
|
||||||
FUNCTION_HD
|
FUNCTION_HD
|
||||||
conveyorBelt(const conveyorBelt&) = default;
|
conveyorBelt(const conveyorBelt&) = default;
|
||||||
|
|
||||||
conveyorBelt& operator=(const conveyorBelt&) = default;
|
conveyorBelt& operator=(const conveyorBelt&) = default;
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
void setTime(real t)
|
void setTime(real t)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
/*INLINE_FUNCTION_HD
|
||||||
realx3 linVelocityPoint(const realx3 &)const
|
realx3 linVelocityPoint(const realx3 &)const
|
||||||
{
|
{
|
||||||
return tangentVelocity_;
|
return tangentVelocity_;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 transferPoint(const realx3& p, real)const
|
realx3 linVelocityPoint(const realx3 &, const realx3& wallNormal)const
|
||||||
{
|
{
|
||||||
return p;
|
return linearVelocity_ * cross(wallNormal, normal_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - IO operation
|
INLINE_FUNCTION_HD
|
||||||
FUNCTION_H
|
realx3 transferPoint(const realx3& p, real)const
|
||||||
bool read(const dictionary& dict);
|
{
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
FUNCTION_H
|
// - IO operation
|
||||||
bool write(dictionary& dict) const;
|
FUNCTION_H
|
||||||
|
bool read(const dictionary& dict);
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool read(iIstream& is);
|
bool write(dictionary& dict) const;
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool write(iOstream& os)const;
|
bool read(iIstream& is);
|
||||||
|
|
||||||
|
FUNCTION_H
|
||||||
|
bool write(iOstream& os)const;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline iOstream& operator <<(iOstream& os, const conveyorBelt& obj)
|
inline iOstream& operator <<(iOstream& os, const conveyorBelt& obj)
|
||||||
{
|
{
|
||||||
|
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline iIstream& operator >>(iIstream& is, conveyorBelt& obj)
|
inline iIstream& operator >>(iIstream& is, conveyorBelt& obj)
|
||||||
{
|
{
|
||||||
|
|
||||||
return is;
|
return is;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ public:
|
|||||||
|
|
||||||
/// Tangential velocity at point p
|
/// Tangential velocity at point p
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 pointTangentialVel(const realx3& p)const
|
realx3 pointTangentialVel(const realx3& p, const realx3& wallNormal)const
|
||||||
{
|
{
|
||||||
realx3 parentVel(0);
|
realx3 parentVel(0);
|
||||||
auto parIndex = parentAxisIndex();
|
auto parIndex = parentAxisIndex();
|
||||||
@ -128,11 +128,11 @@ public:
|
|||||||
while(parIndex != -1)
|
while(parIndex != -1)
|
||||||
{
|
{
|
||||||
auto& ax = axisList_[parIndex];
|
auto& ax = axisList_[parIndex];
|
||||||
parentVel += ax.linVelocityPoint(p);
|
parentVel += ax.linVelocityPoint(p, wallNormal);
|
||||||
parIndex = ax.parentAxisIndex();
|
parIndex = ax.parentAxisIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
return parentVel + rotatingAxis::linVelocityPoint(p);
|
return parentVel + rotatingAxis::linVelocityPoint(p, wallNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Translate point p for dt seconds based on the axis information
|
/// Translate point p for dt seconds based on the axis information
|
||||||
|
@ -126,7 +126,7 @@ public:
|
|||||||
|
|
||||||
/// Linear tangential velocity at point p
|
/// Linear tangential velocity at point p
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 linVelocityPoint(const realx3 &p)const;
|
realx3 linVelocityPoint(const realx3 &p, const realx3& wallNormal)const;
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 transferPoint(const realx3 p, real dt)const;
|
realx3 transferPoint(const realx3 p, real dt)const;
|
||||||
|
@ -20,7 +20,7 @@ Licence:
|
|||||||
-----------------------------------------------------------------------------*/
|
-----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
pFlow::realx3 pFlow::rotatingAxis::linVelocityPoint(const realx3 &p)const
|
pFlow::realx3 pFlow::rotatingAxis::linVelocityPoint(const realx3 &p, const realx3&)const
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!inTimeRange()) return {0,0,0};
|
if(!inTimeRange()) return {0,0,0};
|
||||||
|
@ -60,7 +60,7 @@ public:
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 linVelocityPoint(const realx3 &)const
|
realx3 linVelocityPoint(const realx3 &, const realx3&)const
|
||||||
{
|
{
|
||||||
return realx3(0);
|
return realx3(0);
|
||||||
}
|
}
|
||||||
|
@ -39,17 +39,17 @@ class dictionary;
|
|||||||
* Creates a sinoidal virating model for a wall. The viration is defined by
|
* Creates a sinoidal virating model for a wall. The viration is defined by
|
||||||
* frequency, amplitude and phase angle.
|
* frequency, amplitude and phase angle.
|
||||||
* \f[
|
* \f[
|
||||||
\vec{v}(t) = \vec{A} sin(\vec{\omega}(t-startTime)+\vec{\phi})
|
\vec{v}(t) = \vec{A} sin(\vec{\omega}(t-startTime)+\vec{\phi})
|
||||||
\f]
|
\f]
|
||||||
\verbatim
|
\verbatim
|
||||||
// This creates sinoidal vibration on the wall in x-direction. The viration
|
// This creates sinoidal vibration on the wall in x-direction. The viration
|
||||||
// starts at t = 0 s and ends at t = 10 s.
|
// starts at t = 0 s and ends at t = 10 s.
|
||||||
{
|
{
|
||||||
angularFreq (10 0 0);
|
angularFreq (10 0 0);
|
||||||
amplitude ( 1 0 0);
|
amplitude ( 1 0 0);
|
||||||
phaseAngle ( 0 0 0);
|
phaseAngle ( 0 0 0);
|
||||||
startTime 0;
|
startTime 0;
|
||||||
endTime 10;
|
endTime 10;
|
||||||
} \endverbatim
|
} \endverbatim
|
||||||
*
|
*
|
||||||
* *
|
* *
|
||||||
@ -64,102 +64,102 @@ class dictionary;
|
|||||||
*/
|
*/
|
||||||
class vibrating
|
class vibrating
|
||||||
:
|
:
|
||||||
public timeInterval
|
public timeInterval
|
||||||
{
|
{
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// rotation speed
|
// rotation speed
|
||||||
realx3 angularFreq_{0,0,0};
|
realx3 angularFreq_{0,0,0};
|
||||||
|
|
||||||
realx3 phaseAngle_{0,0,0};
|
realx3 phaseAngle_{0,0,0};
|
||||||
|
|
||||||
realx3 amplitude_{0,0,0};
|
realx3 amplitude_{0,0,0};
|
||||||
|
|
||||||
realx3 velocity_{0,0,0};
|
realx3 velocity_{0,0,0};
|
||||||
|
|
||||||
realx3 velocity0_{0,0,0};
|
realx3 velocity0_{0,0,0};
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
void calculateVelocity()
|
void calculateVelocity()
|
||||||
{
|
{
|
||||||
if(inTimeRange())
|
if(inTimeRange())
|
||||||
{
|
{
|
||||||
velocity_ = amplitude_ * sin( angularFreq_*(time()-startTime() ) + phaseAngle_ );
|
velocity_ = amplitude_ * sin( angularFreq_*(time()-startTime() ) + phaseAngle_ );
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
velocity_ = {0,0,0};
|
velocity_ = {0,0,0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
TypeInfoNV("vibrating");
|
TypeInfoNV("vibrating");
|
||||||
|
|
||||||
FUNCTION_HD
|
FUNCTION_HD
|
||||||
vibrating()=default;
|
vibrating()=default;
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
explicit vibrating(const dictionary& dict);
|
explicit vibrating(const dictionary& dict);
|
||||||
|
|
||||||
|
|
||||||
FUNCTION_HD
|
FUNCTION_HD
|
||||||
vibrating(const vibrating&) = default;
|
vibrating(const vibrating&) = default;
|
||||||
|
|
||||||
vibrating& operator=(const vibrating&) = default;
|
vibrating& operator=(const vibrating&) = default;
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
void setTime(real t)
|
void setTime(real t)
|
||||||
{
|
{
|
||||||
if( !equal(t, time()) ) velocity0_ = velocity_;
|
if( !equal(t, time()) ) velocity0_ = velocity_;
|
||||||
timeInterval::setTime(t);
|
timeInterval::setTime(t);
|
||||||
calculateVelocity();
|
calculateVelocity();
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 linVelocityPoint(const realx3 &)const
|
realx3 linVelocityPoint(const realx3 &, const realx3&)const
|
||||||
{
|
{
|
||||||
return velocity_;
|
return velocity_;
|
||||||
}
|
}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3 transferPoint(const realx3& p, real dt)const
|
realx3 transferPoint(const realx3& p, real dt)const
|
||||||
{
|
{
|
||||||
if(!inTimeRange()) return p;
|
if(!inTimeRange()) return p;
|
||||||
return p + static_cast<real>(0.5*dt)*(velocity0_+velocity_);
|
return p + static_cast<real>(0.5*dt)*(velocity0_+velocity_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - IO operation
|
// - IO operation
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool read(const dictionary& dict);
|
bool read(const dictionary& dict);
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool write(dictionary& dict) const;
|
bool write(dictionary& dict) const;
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool read(iIstream& is);
|
bool read(iIstream& is);
|
||||||
|
|
||||||
FUNCTION_H
|
FUNCTION_H
|
||||||
bool write(iOstream& os)const;
|
bool write(iOstream& os)const;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline iOstream& operator <<(iOstream& os, const vibrating& obj)
|
inline iOstream& operator <<(iOstream& os, const vibrating& obj)
|
||||||
{
|
{
|
||||||
if(!obj.write(os))
|
if(!obj.write(os))
|
||||||
{
|
{
|
||||||
fatalExit;
|
fatalExit;
|
||||||
}
|
}
|
||||||
return os;
|
return os;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline iIstream& operator >>(iIstream& is, vibrating& obj)
|
inline iIstream& operator >>(iIstream& is, vibrating& obj)
|
||||||
{
|
{
|
||||||
if( !obj.read(is) )
|
if( !obj.read(is) )
|
||||||
{
|
{
|
||||||
fatalExit;
|
fatalExit;
|
||||||
}
|
}
|
||||||
return is;
|
return is;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,9 @@ private:
|
|||||||
deviceViewType1D<realx3> dPoints_;
|
deviceViewType1D<realx3> dPoints_;
|
||||||
|
|
||||||
deviceViewType1D<uint32x3> dVectices_;
|
deviceViewType1D<uint32x3> dVectices_;
|
||||||
|
|
||||||
|
deviceViewType1D<realx3> dNormals_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
INLINE_FUNCTION_H
|
INLINE_FUNCTION_H
|
||||||
@ -53,12 +56,14 @@ public:
|
|||||||
uint32 numPoints,
|
uint32 numPoints,
|
||||||
deviceViewType1D<realx3> points,
|
deviceViewType1D<realx3> points,
|
||||||
uint32 numTrianlges,
|
uint32 numTrianlges,
|
||||||
deviceViewType1D<uint32x3> vertices )
|
deviceViewType1D<uint32x3> vertices,
|
||||||
|
deviceViewType1D<realx3> normals )
|
||||||
:
|
:
|
||||||
numPoints_(numPoints),
|
numPoints_(numPoints),
|
||||||
numTriangles_(numTrianlges),
|
numTriangles_(numTrianlges),
|
||||||
dPoints_(points),
|
dPoints_(points),
|
||||||
dVectices_(vertices)
|
dVectices_(vertices),
|
||||||
|
dNormals_(normals)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
@ -91,11 +96,17 @@ public:
|
|||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
realx3x3 operator[](uint32 i)const { return triangle(i); }
|
realx3x3 operator[](uint32 i)const { return triangle(i); }
|
||||||
|
|
||||||
|
INLINE_FUNCTION_HD
|
||||||
|
const realx3& normal(uint32 i)const
|
||||||
|
{
|
||||||
|
return dNormals_[i];
|
||||||
|
}
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
uint32 numPoints()const { return numPoints_; }
|
uint32 numPoints()const { return numPoints_; }
|
||||||
|
|
||||||
INLINE_FUNCTION_HD
|
INLINE_FUNCTION_HD
|
||||||
uint32 numTrianlges()const { return numTriangles_;}
|
uint32 numTriangles()const { return numTriangles_;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -224,7 +235,8 @@ public:
|
|||||||
points_.size(),
|
points_.size(),
|
||||||
points_.deviceViewAll(),
|
points_.deviceViewAll(),
|
||||||
vertices_.size(),
|
vertices_.size(),
|
||||||
vertices_.deviceViewAll());
|
vertices_.deviceViewAll(),
|
||||||
|
normals_.deviceViewAll() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//// - IO operations
|
//// - IO operations
|
||||||
|
@ -7,14 +7,18 @@ objectType dictionary;
|
|||||||
fileFormat ASCII;
|
fileFormat ASCII;
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
// motion model can be rotatingAxis or stationary or vibrating
|
|
||||||
motionModel conveyorBelt;
|
motionModel conveyorBelt;
|
||||||
|
|
||||||
conveyorBeltInfo
|
conveyorBeltInfo
|
||||||
{
|
{
|
||||||
conveyorBelt1
|
conveyorBelt1
|
||||||
{
|
{
|
||||||
tangentVelocity (0.5 0 0);
|
// linear velocity of belt
|
||||||
|
linearVelocity 0.5;
|
||||||
|
|
||||||
|
// normal vector of velocity plate
|
||||||
|
// The velocity vector is tangent to this plane
|
||||||
|
normal (0 -1 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ writeFormat ascii; // data writting format (ascii
|
|||||||
|
|
||||||
timersReport Yes; // report timers
|
timersReport Yes; // report timers
|
||||||
|
|
||||||
timersReportInterval 0.01; // time interval for reporting timers
|
timersReportInterval 0.1; // time interval for reporting timers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ surfaces
|
|||||||
type stlWall; // type of the wall
|
type stlWall; // type of the wall
|
||||||
file shell.stl; // file name in stl folder
|
file shell.stl; // file name in stl folder
|
||||||
material prop1; // material name of this wall
|
material prop1; // material name of this wall
|
||||||
motion none; // this surface is not moving ==> none
|
motion none; // this surface is not movng ==> none
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user