ThunderEgg
1.0.0
|
Implements a variable coefficient Laplacian f=Div[h*Grad[u]]. More...
#include <StarPatchOperator.h>
Public Member Functions | |
StarPatchOperator (const Vector< D > &coeffs, const Domain< D > &domain, const GhostFiller< D > &ghost_filler) | |
Construct a new StarPatchOperator object. More... | |
StarPatchOperator< D > * | clone () const override |
Get a clone of this operator. More... | |
void | applySinglePatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view, const PatchView< double, D > &f_view, bool interior) const |
void | applySinglePatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view, const PatchView< double, D > &f_view) const override |
Apply the operator to a single patch. More... | |
void | applySinglePatchWithInternalBoundaryConditions (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view, const PatchView< double, D > &f_view) const override |
Apply the operator to a single patch. More... | |
void | enforceBoundaryConditions (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view) const |
void | enforceInternalBoundaryConditions (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view) const |
void | modifyRHSForInternalBoundaryConditions (const PatchInfo< D > &pinfo, const PatchView< const double, D > &u_view, const PatchView< double, D > &f_view) const override |
Treat the internal patch boundaries as domain boundaires and modify RHS accordingly. More... | |
void | addDrichletBCToRHS (Vector< D > &f, std::function< double(const std::array< double, D > &)> gfunc, std::function< double(const std::array< double, D > &)> hfunc) |
Helper function for adding Dirichlet boundary conditions to right hand side. More... | |
![]() | |
PatchOperator (const Domain< D > &domain, const GhostFiller< D > &ghost_filler) | |
Construct a new Patch Operator object. More... | |
virtual | ~PatchOperator () |
Destroy the PatchOperator object. | |
void | apply (const Vector< D > &u, Vector< D > &f) const override |
Apply the operator. More... | |
const Domain< D > & | getDomain () const |
Get the Domain object associated with this PatchOperator. | |
const GhostFiller< D > & | getGhostFiller () const |
Get the GhostFiller object associated with this PatchOperator. | |
![]() | |
virtual | ~Operator () |
Destroy the Operator object. | |
Protected Member Functions | |
constexpr int | addValue (int axis) const |
Protected Attributes | |
Vector< D > | coeffs |
Implements a variable coefficient Laplacian f=Div[h*Grad[u]].
h is a cell-centered coefficient
D | the number of Cartesian dimensions |
|
inline |
Construct a new StarPatchOperator object.
coeffs | the cell centered coefficients |
domain | the Domain associated with the operator |
ghost_filler | the GhostFiller to use before calling applySinglePatch |
|
inline |
Helper function for adding Dirichlet boundary conditions to right hand side.
f | the right hand side vector |
gfunc | the exact solution |
hfunc | the coefficients |
|
inlineoverridevirtual |
Apply the operator to a single patch.
The ghost values in u will be updated to the latest values, and should not need to be modified
pinfo | the patch |
u_view | the solution |
f_view | the left hand side |
Implements ThunderEgg::PatchOperator< D >.
|
inlineoverridevirtual |
Apply the operator to a single patch.
The ghost values in u will be updated to the latest values, and should not need to be modified
pinfo | the patch |
u_view | the solution |
f_view | the left hand side |
Implements ThunderEgg::PatchOperator< D >.
|
inlineoverridevirtual |
Get a clone of this operator.
Implements ThunderEgg::PatchOperator< D >.
|
inlineoverridevirtual |
Treat the internal patch boundaries as domain boundaires and modify RHS accordingly.
This will be u_viewed in patch solvers to formulate a RHS for the individual patch to solve for.
pinfo | the patch |
u_view | the left hand side |
f_view | the right hand side |
Implements ThunderEgg::PatchOperator< D >.