41 namespace MultiRegions
56 std::dynamic_pointer_cast<ContField2D> (In.
m_planes[0]);
58 for(
int n = 0; n <
m_planes.num_elements(); ++n)
70 const std::string &variable):
74 std::dynamic_pointer_cast<ContField2D> (In.
m_planes[0]);
81 for(
int n = 0; n <
m_planes.num_elements(); ++n)
90 if(variable.compare(
"DefaultVar") != 0)
107 const bool dealiasing,
109 const std::string &variable,
110 const bool CheckIfSingularSystem,
125 pSession, graph2D, variable,
false,
126 CheckIfSingularSystem, ImpType);
129 pSession, graph2D, variable,
false,
135 for(n = 0; n <
m_planes.num_elements(); ++n)
143 false, CheckIfSingularSystem);
158 for(i = 0; i < nel; ++i)
172 if(variable.compare(
"DefaultVar") != 0)
183 int ncoeffs =
m_planes[0]->GetNcoeffs();
185 for(
int n = 0; n <
m_planes.num_elements(); ++n)
187 m_planes[n]->ImposeDirichletConditions(tmp = outarray +
194 for(
int n = 0; n <
m_planes.num_elements(); ++n)
196 m_planes[n]->FillBndCondFromField();
202 for(
int n = 0; n <
m_planes.num_elements(); ++n)
204 m_planes[n]->FillBndCondFromField(nreg);
213 for(
int n = 0; n <
m_planes.num_elements(); ++n)
215 m_planes[n]->LocalToGlobal(useComm);
225 for(
int n = 0; n <
m_planes.num_elements(); ++n)
241 for(
int n = 0; n <
m_planes.num_elements(); ++n)
243 m_planes[n]->SmoothField(tmp = field + cnt);
258 const bool PhysSpaceForcing)
292 for(n = 0; n <
m_planes.num_elements(); ++n)
298 new_factors = factors;
303 wfce = (PhysSpaceForcing)? fce+cnt:fce+cnt1;
305 e_out = outarray + cnt1,
306 flags, new_factors, varcoeff,
307 varfactors, dirForcing,
321 for(
int n = 0; n <
m_planes.num_elements(); ++n)
323 m_planes[n]->ClearGlobalLinSysManager();
bool isSet(const FlagType &key) const
Describes the specification for a Basis.
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
virtual void v_ImposeDirichletConditions(Array< OneD, NekDouble > &outarray)
virtual void v_GlobalToLocal(void)
Template method virtual forwarded for GlobalToLocal()
ContField3DHomogeneous1D()
virtual void v_FillBndCondFromField()
virtual void v_ClearGlobalLinSysManager(void)
virtual void v_LocalToGlobal(bool useComm)
Template method virtual forwarded for LocalToGlobal()
virtual void v_SmoothField(Array< OneD, NekDouble > &field)
virtual ~ContField3DHomogeneous1D()
Destructor.
virtual void v_HelmSolve(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, const FlagList &flags, const StdRegions::ConstFactorMap &factors, const StdRegions::VarCoeffMap &varcoeff, const MultiRegions::VarFactorsMap &varfactors, const Array< OneD, const NekDouble > &dirForcing, const bool PhysSpaceForcing)
Solves the three-dimensional Helmholtz equation, subject to the boundary conditions specified.
void SetupBoundaryConditions(const LibUtilities::BasisKey &HomoBasis, const NekDouble lhom, SpatialDomains::BoundaryConditions &bcs, const std::string variable)
void SetCoeffPhys(void)
Definition of the total number of degrees of freedom and quadrature points. Sets up the storage for m...
NekDouble m_lhom
Width of homogeneous direction.
LibUtilities::TranspositionSharedPtr m_transposition
void HomogeneousFwdTrans(const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, CoeffState coeffstate=eLocal, bool Shuff=true, bool UnShuff=true)
Array< OneD, ExpListSharedPtr > m_planes
NekDouble GetSpecVanVisc(const int k)
LibUtilities::BasisSharedPtr m_homogeneousBasis
Definition of the total number of degrees of freedom and quadrature points. Sets up the storage for m...
int GetExpSize(void)
This function returns the number of elements in the expansion.
std::shared_ptr< LocalRegions::ExpansionVector > m_exp
The list of local expansions.
NekOptimize::GlobalOptParamSharedPtr m_globalOptParam
const std::shared_ptr< LocalRegions::ExpansionVector > GetExp() const
This function returns the vector of elements in the expansion.
SpatialDomains::MeshGraphSharedPtr m_graph
Mesh associated with this expansion list.
LibUtilities::SessionReaderSharedPtr m_session
Session.
std::shared_ptr< SessionReader > SessionReaderSharedPtr
@ eFourierHalfModeIm
Fourier Modified expansions with just the imaginary part of the first mode
@ eFourierHalfModeRe
Fourier Modified expansions with just the real part of the first mode
@ eGlobal
Global coefficients.
@ eLocal
Local coefficients.
std::map< StdRegions::ConstFactorType, Array< OneD, NekDouble > > VarFactorsMap
std::shared_ptr< ContField2D > ContField2DSharedPtr
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
std::map< StdRegions::VarCoeffType, Array< OneD, NekDouble > > VarCoeffMap
std::map< ConstFactorType, NekDouble > ConstFactorMap