mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-07-08 03:07:03 +00:00
global damping is added to the code
This commit is contained in:
@ -35,7 +35,8 @@ bool intAllActive(
|
||||
realx3Field_D& y,
|
||||
realx3PointField_D& dy,
|
||||
realx3PointField_D& dy1,
|
||||
realx3PointField_D& dy2)
|
||||
realx3PointField_D& dy2,
|
||||
real damping = 1.0)
|
||||
{
|
||||
|
||||
auto d_dy = dy.deviceView();
|
||||
@ -48,9 +49,9 @@ bool intAllActive(
|
||||
"AdamsBashforth3::correct",
|
||||
rpIntegration (activeRng.start(), activeRng.end()),
|
||||
LAMBDA_HD(uint32 i){
|
||||
d_y[i] += dt*( static_cast<real>(23.0 / 12.0) * d_dy[i]
|
||||
d_y[i] = damping*( d_y[i]+ dt*( static_cast<real>(23.0 / 12.0) * d_dy[i]
|
||||
- static_cast<real>(16.0 / 12.0) * d_dy1[i]
|
||||
+ static_cast<real>(5.0 / 12.0) * d_dy2[i]);
|
||||
+ static_cast<real>(5.0 / 12.0) * d_dy2[i]) );
|
||||
|
||||
d_dy2[i] = d_dy1[i];
|
||||
d_dy1[i] = d_dy[i];
|
||||
@ -67,7 +68,8 @@ bool intScattered
|
||||
realx3Field_D& y,
|
||||
realx3PointField_D& dy,
|
||||
realx3PointField_D& dy1,
|
||||
realx3PointField_D& dy2
|
||||
realx3PointField_D& dy2,
|
||||
real damping = 1.0
|
||||
)
|
||||
{
|
||||
|
||||
@ -84,9 +86,9 @@ bool intScattered
|
||||
LAMBDA_HD(uint32 i){
|
||||
if( activeP(i))
|
||||
{
|
||||
d_y[i] += dt*( static_cast<real>(23.0 / 12.0) * d_dy[i]
|
||||
d_y[i] = damping * (d_y[i] + dt*( static_cast<real>(23.0 / 12.0) * d_dy[i]
|
||||
- static_cast<real>(16.0 / 12.0) * d_dy1[i]
|
||||
+ static_cast<real>(5.0 / 12.0) * d_dy2[i]);
|
||||
+ static_cast<real>(5.0 / 12.0) * d_dy2[i]));
|
||||
|
||||
d_dy2[i] = d_dy1[i];
|
||||
d_dy1[i] = d_dy[i];
|
||||
@ -141,18 +143,19 @@ bool pFlow::AdamsBashforth3::correct
|
||||
(
|
||||
real dt,
|
||||
realx3PointField_D& y,
|
||||
realx3PointField_D& dy
|
||||
realx3PointField_D& dy,
|
||||
real damping
|
||||
)
|
||||
{
|
||||
|
||||
bool success = false;
|
||||
if(y.isAllActive())
|
||||
{
|
||||
success = intAllActive(dt, y.field(), dy, dy1(), dy2());
|
||||
success = intAllActive(dt, y.field(), dy, dy1(), dy2(), damping);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = intScattered(dt, y.field(), dy, dy1(), dy2());
|
||||
success = intScattered(dt, y.field(), dy, dy1(), dy2(), damping);
|
||||
}
|
||||
|
||||
success = success && boundaryList().correct(dt, y, dy);
|
||||
|
Reference in New Issue
Block a user