class
TransportProblemShearDiffContents
- Reference
Transport PDE problem: diffusion of a shear layer
This class implements the analytical solutions for the test problem, adopted from Okubo Akira Karweit Michael J. , (1969), DIFFUSION FROM A CONTINUOUS SOURCE IN A UNIFORM SHEAR FLOW, Limnology and Oceanography, 14, doi: 10.4319/lo.1969.14.4.0514. In essence, this is a test problem for the advection-diffusion equation in 3D where the analytical solution is known in a closed form as the solution evolves in time. The initial solution is a Gaussian that is advected and diffused in time with an imposed constant-in-time velocity field that features advection and shear. Also, the diffusion coefficients can be different in the three coordinate directions. Note that t0 as well as all three components of the diffusion must be larger than zero at t=t0 to have a well-defined initial condition.
In a nutshell, the equation solved is
whose solution is given by
where . See also the paper.
Public static functions
-
static auto initialize(ncomp_
t system, ncomp_ t ncomp, tk:: real x, tk:: real y, tk:: real z, tk:: real t) -> std::vector<tk:: real> - Initialize numerical solution.
-
static auto analyticSolution(ncomp_
t system, ncomp_ t ncomp, tk:: real x, tk:: real y, tk:: real z, tk:: real t) -> std::vector<tk:: real> - Evaluate analytical solution at (x,y,z,t) for all components.
-
static auto prescribedVelocity(ncomp_
t system, ncomp_ t ncomp, tk:: real, tk:: real y, tk:: real z, tk:: real) -> std::vector<std::array<tk:: real, 3>> - Assign prescribed shear velocity at a point.
-
static auto type() -> ctr::
ProblemType noexcept - Return problem type.
Public functions
Function documentation
static std::vector<tk:: real> inciter:: TransportProblemShearDiff:: initialize(ncomp_ t system,
ncomp_ t ncomp,
tk:: real x,
tk:: real y,
tk:: real z,
tk:: real t)
Initialize numerical solution.
Parameters | |
---|---|
system in | Equation system index |
ncomp in | Number of components in this transport equation system |
x in | X coordinate where to evaluate the solution |
y in | Y coordinate where to evaluate the solution |
z in | Z coordinate where to evaluate the solution |
t in | Time where to evaluate the solution |
Returns | Values of all components evaluated at (x,y,t) |
static std::vector<std::array<tk:: real, 3>> inciter:: TransportProblemShearDiff:: prescribedVelocity(ncomp_ t system,
ncomp_ t ncomp,
tk:: real,
tk:: real y,
tk:: real z,
tk:: real)
Assign prescribed shear velocity at a point.
Parameters | |
---|---|
system in | Equation system index, i.e., which transport equation system we operate on among the systems of PDEs |
ncomp in | Number of components in this transport equation |
y in | y coordinate at which to assign velocity |
z in | Z coordinate at which to assign velocity |
Returns | Velocity assigned to all vertices of a tetrehedron, size: ncomp * ndim = [ncomp][3] |
void inciter:: TransportProblemShearDiff:: errchk(ncomp_ t system,
ncomp_ t ncomp) const
Do error checking on PDE parameters.
Parameters | |
---|---|
system in | Equation system index, i.e., which transport equation system we operate on among the systems of PDEs |
ncomp in | Number of components in this transport equation |