Alamo
Implicit.cpp
Go to the documentation of this file.
1#include <AMReX_MultiFabUtil.H>
2#include <AMReX_REAL.H>
3#include <AMReX_MLCGSolver.H>
4#include "Set/Set.H"
5
6#include <AMReX_ArrayLim.H>
7
8#include "Util/Util.H"
9#include "Set/Set.H"
10#include "Implicit.H"
11
12namespace Operator
13{
14namespace Implicit
15{
16Implicit::Implicit (const Vector<Geometry>& a_geom,
17 const Vector<BoxArray>& a_grids,
18 const Vector<DistributionMapping>& a_dmap,
20 const LPInfo& a_info)
21{
22 define(a_geom, a_grids, a_dmap, a_bc, a_info);
23}
24
25void
26Implicit::Fapply (int /*amrlev*/, ///<[in] AMR Level
27 int /*mglev*/, ///<[in]
28 MultiFab& /*f*/,///<[out] The force vector
29 const MultiFab& /*u*/ ///<[in] The displacements vector
30 ) const
31{
33}
34
35
36void
37Implicit::Fsmooth (int /*amrlev*/, ///<[in] AMR level
38 int /*mglev*/, ///<[in]
39 MultiFab& /*u*/, ///<[inout] Solution (displacement field)
40 const MultiFab& /*rhs*/, ///<[in] Body force vectors (rhs=right hand side)
41 int /*redblack*/ ///<[in] Smooth even vs. odd modes
42 ) const
43{
45}
46
47void Implicit::FFlux (int /*amrlev*/, const MFIter& /*mfi*/,
48 const Array<FArrayBox*,AMREX_SPACEDIM>& sigmafab,
49 const FArrayBox& /*sol*/, Location /*loc*/, const int /*face_only*/) const
50{
51 amrex::BaseFab<amrex::Real> AMREX_D_DECL( &fxfab = *sigmafab[0],
52 &fyfab = *sigmafab[1],
53 &fzfab = *sigmafab[2] ) ;
54 AMREX_D_TERM(fxfab.setVal(0.0);,
55 fyfab.setVal(0.0);,
56 fzfab.setVal(0.0););
57
58}
59
60}
61}
#define INFO
Definition Util.H:20
Definition BC.H:42
virtual void Fapply(int amrlev, int mglev, MultiFab &out, const MultiFab &in) const final
Definition Implicit.cpp:26
virtual void Fsmooth(int amrlev, int mglev, MultiFab &sol, const MultiFab &rsh, int redblack) const final
Definition Implicit.cpp:37
virtual void FFlux(int amrlev, const MFIter &mfi, const Array< FArrayBox *, AMREX_SPACEDIM > &flux, const FArrayBox &sol, Location loc, const int face_only=0) const
Definition Implicit.cpp:47
void define(amrex::Vector< amrex::Geometry > a_geom, const amrex::Vector< amrex::BoxArray > &a_grids, const amrex::Vector< amrex::DistributionMapping > &a_dmap, BC::BC< Set::Scalar > &a_bc, const amrex::LPInfo &a_info=amrex::LPInfo(), const amrex::Vector< amrex::FabFactory< amrex::FArrayBox > const * > &a_factory={})
Definition Operator.cpp:697
static constexpr amrex::IntVect AMREX_D_DECL(dx={AMREX_D_DECL(1, 0, 0)}, dy={AMREX_D_DECL(0, 1, 0)}, dz={AMREX_D_DECL(0, 0, 1)})
Documentation for operator namespace.
Definition Diagonal.cpp:14
void Message(std::string file, std::string func, int line, Args const &... args)
Definition Util.H:141