1 #ifndef AMREX_ML_EB_TENSOROP_H_
2 #define AMREX_ML_EB_TENSOROP_H_
3 #include <AMReX_Config.H>
65 [[nodiscard]]
int getNComp () const final {
return AMREX_SPACEDIM; }
68 [[nodiscard]]
bool isTensorOp () const final {
return true; }
78 [[nodiscard]]
bool isSingular (
int ) const final {
return false; }
typename MLLinOpT< MF >::Location Location
Definition: AMReX_MLCellABecLap.H:19
typename MLLinOpT< MF >::BCMode BCMode
Definition: AMReX_MLCellLinOp.H:28
typename MLLinOpT< MF >::StateMode StateMode
Definition: AMReX_MLCellLinOp.H:29
Definition: AMReX_MLEBABecLap.H:16
bool needsUpdate() const override
Does it need update if it's reused?
Definition: AMReX_MLEBABecLap.H:67
Definition: AMReX_MLEBTensorOp.H:28
void apply(int amrlev, int mglev, MultiFab &out, MultiFab &in, BCMode bc_mode, StateMode s_mode, const MLMGBndry *bndry=nullptr) const final
Definition: AMReX_MLEBTensorOp.cpp:200
bool m_needs_update
Definition: AMReX_MLEBTensorOp.H:96
MLEBTensorOp(MLEBTensorOp &&)=delete
void prepareForSolve() final
Definition: AMReX_MLEBTensorOp.cpp:139
Vector< Vector< Array< MultiFab, AMREX_SPACEDIM > > > m_kappa
Definition: AMReX_MLEBTensorOp.H:100
bool m_has_kappa
Definition: AMReX_MLEBTensorOp.H:98
bool needsUpdate() const final
Does it need update if it's reused?
Definition: AMReX_MLEBTensorOp.H:70
void setBulkViscosity(int amrlev, const Array< MultiFab const *, AMREX_SPACEDIM > &kappa)
Definition: AMReX_MLEBTensorOp.cpp:87
void setEBBulkViscosity(int amrlev, MultiFab const &kappa)
Definition: AMReX_MLEBTensorOp.cpp:123
void compVelGrad(int amrlev, const Array< MultiFab *, AMREX_SPACEDIM > &grads, MultiFab &sol, Location loc) const
Definition: AMReX_MLEBTensorOp.cpp:613
bool isCrossStencil() const final
Definition: AMReX_MLEBTensorOp.H:67
void setEBHomogDirichlet(int amrlev, const MultiFab &beta)=delete
void setShearViscosity(int amrlev, const Array< MultiFab const *, AMREX_SPACEDIM > &eta, Location a_beta_loc)
Definition: AMReX_MLEBTensorOp.cpp:74
void setBCoeffs(int amrlev, const Array< MultiFab const *, AMREX_SPACEDIM > &beta, Location a_beta_loc)=delete
void applyBCTensor(int amrlev, int mglev, MultiFab &vel, BCMode bc_mode, StateMode s_mode, const MLMGBndry *bndry) const
Definition: AMReX_MLEBTensorOp_bc.cpp:8
void compFlux(int amrlev, const Array< MultiFab *, AMREX_SPACEDIM > &fluxes, MultiFab &sol, Location loc) const override
Definition: AMReX_MLEBTensorOp.cpp:502
void compCrossTerms(int amrlev, int mglev, MultiFab const &mf, const MLMGBndry *bndry) const
Definition: AMReX_MLEBTensorOp.cpp:291
void setEBShearViscosity(int amrlev, MultiFab const &eta)
Definition: AMReX_MLEBTensorOp.cpp:105
void setEBDirichlet(int amrlev, const MultiFab &phi, const MultiFab &beta)=delete
int getNComp() const final
Return number of components.
Definition: AMReX_MLEBTensorOp.H:65
void update() final
Update for reuse.
Definition: AMReX_MLEBTensorOp.H:73
Vector< Vector< MultiFab > > m_eb_kappa
Definition: AMReX_MLEBTensorOp.H:101
Vector< Vector< Array< MultiFab, AMREX_SPACEDIM > > > m_tauflux
Definition: AMReX_MLEBTensorOp.H:102
bool isBottomSingular() const final
Is the bottom of MG singular?
Definition: AMReX_MLEBTensorOp.H:79
void define(const Vector< Geometry > &a_geom, const Vector< BoxArray > &a_grids, const Vector< DistributionMapping > &a_dmap, const LPInfo &a_info, const Vector< EBFArrayBoxFactory const * > &a_factory)
Definition: AMReX_MLEBTensorOp.cpp:32
MLEBTensorOp & operator=(const MLEBTensorOp &)=delete
void setEBShearViscosityWithInflow(int amrlev, MultiFab const &eta, MultiFab const &eb_vel)
Definition: AMReX_MLEBTensorOp.cpp:117
MLEBTensorOp()
Definition: AMReX_MLEBTensorOp.cpp:14
bool isSingular(int) const final
Is it singular on given AMR level?
Definition: AMReX_MLEBTensorOp.H:78
bool m_has_eb_kappa
Definition: AMReX_MLEBTensorOp.H:99
bool isTensorOp() const final
Definition: AMReX_MLEBTensorOp.H:68
MLEBTensorOp(const MLEBTensorOp &)=delete
Definition: AMReX_MLMGBndry.H:12
A collection (stored as an array) of FArrayBox objects.
Definition: AMReX_MultiFab.H:38
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition: AMReX_Vector.H:27
Definition: AMReX_Amr.cpp:49
void Abort(const std::string &msg)
Print out message to cerr and exit via abort().
Definition: AMReX.cpp:225
std::array< T, N > Array
Definition: AMReX_Array.H:24
Definition: AMReX_MLLinOp.H:35