Added a skeleton function for updating an arbitrary block inside the computational domain instead of the whole mesh

This commit is contained in:
jpekkila
2019-06-19 19:43:46 +03:00
parent 383d2b696c
commit 2310186c71
2 changed files with 20 additions and 0 deletions

View File

@@ -341,6 +341,12 @@ AcResult acIntegrate(const AcReal& dt);
/** Performs a single RK3 step without computing boundary conditions. */ /** Performs a single RK3 step without computing boundary conditions. */
AcResult acIntegrateStep(const int& isubstep, const AcReal& dt); AcResult acIntegrateStep(const int& isubstep, const AcReal& dt);
/** Performs a single RK3 step without computing boundary conditions.
Operates on a three-dimensional cuboid, where start and end are the
opposite corners. */
AcResult acIntegrateStepWithOffset(const int& isubstep, const AcReal& dt, const int3& start,
const int3& end);
/** Applies boundary conditions on the GPU meshs and communicates the /** Applies boundary conditions on the GPU meshs and communicates the
ghost zones among GPUs if necessary */ ghost zones among GPUs if necessary */
AcResult acBoundcondStep(void); AcResult acBoundcondStep(void);

View File

@@ -269,6 +269,20 @@ acIntegrateStep(const int& isubstep, const AcReal& dt)
return AC_SUCCESS; return AC_SUCCESS;
} }
AcResult
acIntegrateStepWithOffset(const int& isubstep, const AcReal& dt, const int3& start, const int3& end)
{
/*
// A skeleton function for computing integrations with arbitrary subblocks
// Uncommenting the following should work with a single GPU.
const int3 start = (int3){STENCIL_ORDER / 2, STENCIL_ORDER / 2, STENCIL_ORDER / 2};
const int3 end = (int3){STENCIL_ORDER / 2 + subgrid.n.x, STENCIL_ORDER / 2 + subgrid.n.y,
STENCIL_ORDER / 2 + subgrid.n.z};
rkStep(devices[0], STREAM_PRIMARY, isubstep, start, end, dt);
*/
return AC_FAILURE;
}
AcResult AcResult
acBoundcondStep(void) acBoundcondStep(void)
{ {