OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
|
#include <FFT.h>
Public Types | |
enum | { Dim_u = Dim } |
enum | { IsExpr = 0 } |
typedef T | T_t |
typedef FieldLayout< Dim > | Layout_t |
typedef LField< T, Dim > | LField_t |
typedef vmap< typename Unique::type, my_auto_ptr < LField< T, Dim > > > | ac_id_larray |
typedef ac_id_larray::iterator | iterator_if |
typedef ac_id_larray::const_iterator | const_iterator_if |
typedef LField< T, Dim >::iterator | LFI |
typedef BareFieldIterator< T, Dim > | iterator |
typedef iterator | PETE_Expr_t |
![]() | |
typedef Unique::type | ID_t |
![]() | |
typedef BareField< T, Dim > | Wrapped |
Protected Attributes | |
ac_id_larray | Locals_ac |
![]() | |
ID_t | Id |
Private Member Functions | |
void | setup () |
void | getsingle_bc (const NDIndex< Dim > &, T &) const |
Private Attributes | |
Layout_t * | Layout |
GuardCellSizes< Dim > | Gc |
bool | dirty_m |
bool | compressible_m |
bool | pinned |
Friends | |
class | BareFieldIterator< T, Dim > |
The FFT class performs complex-to-complex, real-to-complex, or sine transforms on IPPL Fields. FFT is templated on the type of transform to be performed, the dimensionality of the Field to transform, and the floating-point precision type of the Field (float or double).
typedef vmap< typename Unique::type, my_auto_ptr< LField<T,Dim> > > BareField< T, Dim >::ac_id_larray |
Definition at line 91 of file BareField.h.
typedef ac_id_larray::const_iterator BareField< T, Dim >::const_iterator_if |
Definition at line 93 of file BareField.h.
typedef BareFieldIterator<T,Dim> BareField< T, Dim >::iterator |
Definition at line 97 of file BareField.h.
typedef ac_id_larray::iterator BareField< T, Dim >::iterator_if |
Definition at line 92 of file BareField.h.
typedef FieldLayout<Dim> BareField< T, Dim >::Layout_t |
Definition at line 61 of file BareField.h.
Definition at line 94 of file BareField.h.
Definition at line 62 of file BareField.h.
typedef iterator BareField< T, Dim >::PETE_Expr_t |
Definition at line 326 of file BareField.h.
Definition at line 60 of file BareField.h.
anonymous enum |
Enumerator | |
---|---|
Dim_u |
Definition at line 63 of file BareField.h.
anonymous enum |
Enumerator | |
---|---|
IsExpr |
Definition at line 325 of file BareField.h.
Definition at line 369 of file BareField.h.
Definition at line 48 of file BareField.hpp.
References BareField< T, Dim >::begin_if(), FieldLayout< Dim >::checkin(), BareField< T, Dim >::clearDirtyFlag(), vmap< Key, T, Compare >::end(), BareField< T, Dim >::end_if(), BareField< T, Dim >::Gc, BareField< T, Dim >::getLayout(), vmap< Key, T, Compare >::insert(), BareField< T, Dim >::Locals_ac, vmap< Key, T, Compare >::reserve(), and BareField< T, Dim >::size_if().
Definition at line 385 of file BareField.h.
References BareField< T, Dim >::setup().
|
inline |
Definition at line 402 of file BareField.h.
References BareField< T, Dim >::setup().
Definition at line 83 of file BareField.hpp.
Definition at line 698 of file BareField.hpp.
References LField< T, Dim >::AddToOverlapCache(), LField< T, Dim >::begin(), LField< T, Dim >::BeginOverlap(), CompressedBrickIterator< T, Dim >::CanCompress(), IpplInfo::Comm, COMM_ANY_NODE, BareFieldIterator< T, D >::Compress(), Dim, LField< T, Dim >::EndOverlap(), F_GUARD_CELLS_TAG, F_TAG_CYCLE, LField< T, Dim >::getAllocated(), NDIndex< Dim >::getMessage(), CompressedBrickIterator< T, Dim >::getMessage(), IpplInfo::getNodes(), LField< T, Dim >::getOwned(), NDIndex< Dim >::intersect(), TagMaker::next_tag(), LField< T, Dim >::OverlapCacheInitialized(), PAssert, Message::put(), Communicate::receive_block(), Communicate::send(), Message::size(), Attrib::Legacy::Distribution::T, NDIndex< Dim >::touches(), CompressedBrickIterator< T, Dim >::TryCompress(), LField< T, Dim >::Uncompress(), and value_type().
Referenced by ParticleAttrib< ParticleOrigin >::scatter(), and scatter().
Definition at line 234 of file BareField.h.
Referenced by PatchBC< T, D, M, C >::apply(), assign(), UniformCartesian< D, T >::getCellPositionField(), Cartesian< Dim, MFLOAT >::getCellPositionField(), Cartesian< Dim, MFLOAT >::getCellVolumeField(), Cartesian< Dim, MFLOAT >::getDeltaCellField(), Cartesian< Dim, MFLOAT >::getDeltaVertexField(), UniformCartesian< D, T >::getVertexPositionField(), Cartesian< Dim, MFLOAT >::getVertexPositionField(), BareField< T1, D >::MakeExpression(), and Cartesian< Dim, MFLOAT >::storeSpacingFields().
|
inline |
Definition at line 100 of file BareField.h.
Referenced by ParallelPeriodicFace< T, D, M, C >::apply(), ParallelInterpolationFace< T, D, M, C >::apply(), PatchBC< T, D, M, C >::apply(), assign(), BareField< T, Dim >::BareField(), CalcIndexedReceive(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), BareField< T, Dim >::Compress(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FieldDebugWriteb(), BareField< T, Dim >::fillGuardCells(), for_each(), FunctionFaceBCApply(), FieldDataSource< T, Dim, M, C >::gather_data(), Interpolator::getFieldIter(), IndexedLocalAssign(), IndexedSend(), InterpolationFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), FieldPrint< T, Dim >::print(), FieldDebugPrint< T, Dim >::print(), DiscField< Dim >::read(), BareField< T, Dim >::setGuardCells(), UniformCartesian< D, T >::storeSpacingFields(), Cartesian< Dim, MFLOAT >::storeSpacingFields(), FFT< CCTransform, Dim, T >::transform(), BareField< T, Dim >::Uncompress(), and DiscField< Dim >::write().
|
inline |
Definition at line 102 of file BareField.h.
|
inline |
Definition at line 249 of file BareField.h.
Definition at line 118 of file BareField.h.
Referenced by BareField< T, Dim >::BareField(), and BareField< T, Dim >::fillGuardCells().
Definition at line 991 of file BareField.hpp.
References BareField< T, Dim >::begin_if(), and BareField< T, Dim >::end_if().
Referenced by assign(), ParticleAttrib< ParticleOrigin >::gather(), DiscField< Dim >::read(), and BareField< T1, D >::setCompression().
Definition at line 1021 of file BareField.hpp.
References LField< T, Dim >::getOwned(), LField< T, Dim >::IsCompressed(), and reduce().
Definition at line 191 of file BareField.h.
Referenced by assign(), and DiscField< Dim >::read().
Definition at line 241 of file BareField.h.
Referenced by Cartesian< Dim, MFLOAT >::storeSpacingFields().
|
inline |
Definition at line 101 of file BareField.h.
Referenced by ParallelPeriodicFace< T, D, M, C >::apply(), ParallelInterpolationFace< T, D, M, C >::apply(), PatchBC< T, D, M, C >::apply(), assign(), BareField< T, Dim >::BareField(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), BareField< T, Dim >::Compress(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FieldDebugWriteb(), BareField< T, Dim >::fillGuardCells(), for_each(), FunctionFaceBCApply(), FieldDataSource< T, Dim, M, C >::gather_data(), Interpolator::getFieldIter(), IndexedLocalAssign(), IndexedSend(), InterpolationFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), FieldPrint< T, Dim >::print(), FieldDebugPrint< T, Dim >::print(), DiscField< Dim >::read(), BareField< T, Dim >::setGuardCells(), UniformCartesian< D, T >::storeSpacingFields(), Cartesian< Dim, MFLOAT >::storeSpacingFields(), FFT< CCTransform, Dim, T >::transform(), BareField< T, Dim >::Uncompress(), and DiscField< Dim >::write().
|
inline |
Definition at line 103 of file BareField.h.
|
virtual |
Reimplemented in Field< T, Dim, Mesh, Centering >, Field< double, 3, Mesh_t, Center_t >, Field< Vector_t, 3, Mesh_t, Center_t >, and Field< T, Dim, M, C >.
Definition at line 297 of file BareField.hpp.
References LField< T, Dim >::AddToOverlapCache(), LField< T, Dim >::begin(), BareField< T, Dim >::begin_if(), LField< T, Dim >::BeginOverlap(), CompressedBrickIterator< T, Dim >::CanCompress(), BareField< T, Dim >::clearDirtyFlag(), IpplInfo::Comm, COMM_ANY_NODE, Dim, BareField< T, Dim >::end_if(), LField< T, Dim >::EndOverlap(), F_GUARD_CELLS_TAG, F_TAG_CYCLE, LField< T, Dim >::getAllocated(), BareField< T, Dim >::getGC(), BareField< T, Dim >::getLayout(), NDIndex< Dim >::getMessage(), CompressedBrickIterator< T, Dim >::getMessage(), IpplInfo::getNodes(), LField< T, Dim >::getOwned(), NDIndex< Dim >::intersect(), CompressedBrickIterator< T, Dim >::IsCompressed(), LField< T, Dim >::IsCompressed(), TagMaker::next_tag(), LField< T, Dim >::OverlapCacheInitialized(), PAssert, Message::put(), Communicate::receive_block(), Communicate::send(), Message::size(), Attrib::Legacy::Distribution::T, FieldLayout< Dim >::touch_range_rdv(), NDIndex< Dim >::touches(), CompressedBrickIterator< T, Dim >::TryCompress(), LField< T, Dim >::Uncompress(), and value_type().
Referenced by IndexedBareFieldIterator< T, D >::FillGCIfNecessary(), Field< T, Dim, M, C >::fillGuardCells(), BareField< T1, D >::fillGuardCellsIfNotDirty(), BareField< T1, D >::prepareForScalarCode(), FieldDebugPrint< T, Dim >::print(), UniformCartesian< D, T >::storeSpacingFields(), and Cartesian< Dim, MFLOAT >::storeSpacingFields().
Definition at line 122 of file BareField.h.
Referenced by assign(), BareField< T1, D >::finishScalarCode(), and DiscField< Dim >::read().
|
inline |
Definition at line 280 of file BareField.h.
|
inline |
Definition at line 152 of file BareField.h.
Referenced by ParallelPeriodicFace< T, D, M, C >::apply(), ParallelInterpolationFace< T, D, M, C >::apply(), PatchBC< T, D, M, C >::apply(), assign(), CalcParallelInterpolationDomain(), CalcParallelPeriodicDomain(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FFTBoxPoissonSolver::FFTBoxPoissonSolver(), IndexedBareFieldIterator< T, D >::FillGCIfNecessary(), FunctionFaceBCApply(), InterpolationFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), FieldDebugPrint< T, Dim >::print(), sfp1(), sfp2(), and sfp3().
|
inline |
Definition at line 146 of file BareField.h.
Referenced by BareField< T, Dim >::fillGuardCells(), BareField< T1, D >::leftGuard(), Field< T, Dim, M, C >::Repartition(), BareField< T1, D >::rightGuard(), and FFT< CCTransform, Dim, T >::transform().
|
inline |
Definition at line 147 of file BareField.h.
Referenced by ParallelPeriodicFace< T, D, M, C >::apply(), ParallelInterpolationFace< T, D, M, C >::apply(), PatchBC< T, D, M, C >::apply(), assign(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FunctionFaceBCApply(), InterpolationFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), FieldDebugPrint< T, Dim >::print(), UniformCartesian< D, T >::storeSpacingFields(), and Cartesian< Dim, MFLOAT >::storeSpacingFields().
|
inline |
Definition at line 151 of file BareField.h.
Definition at line 131 of file BareField.h.
Referenced by ParallelPeriodicFace< T, D, M, C >::apply(), ParallelInterpolationFace< T, D, M, C >::apply(), assign(), BareField< T, Dim >::BareField(), CalcIndexedReceive(), SubFieldTraits< T, Dim, SIndex< Dim >, NDIndex< Dim > >::construct(), SubFieldTraits< T, Dim, SIndex< Dim >, SOffset< Dim > >::construct(), FieldDebugWriteb(), IndexedBareFieldIterator< T, D >::FillGCIfNecessary(), BareField< T, Dim >::fillGuardCells(), fp1(), fp2(), fp3(), BareField< T1, D >::getDomain(), Interpolator::getFieldIter(), BareField< T1, D >::getIndex(), ggfp1(), ggfp2(), ggfp3(), makeMesh(), DiscField< Dim >::read(), sfp1(), sfp2(), sfp3(), FFT< CCTransform, Dim, T >::transform(), and DiscField< Dim >::write().
void BareField< T, Dim >::getsingle | ( | const NDIndex< Dim > & | Indexes, |
T & | r | ||
) | const |
Definition at line 1201 of file BareField.hpp.
References AddGuardCells(), LField< T, Dim >::begin(), Communicate::broadcast_others(), IpplInfo::Comm, COMM_ANY_NODE, endl(), ERRORMSG, F_GETSINGLE_TAG, F_TAG_CYCLE, getMessage(), IpplInfo::getNodes(), TagMaker::next_tag(), putMessage(), Communicate::receive_block(), and NDIndex< Dim >::touches().
Referenced by IndexedBareField< T, Dim, Brackets >::get().
|
private |
Definition at line 1271 of file BareField.hpp.
References LField< T, Dim >::begin(), Communicate::broadcast_others(), IpplInfo::Comm, F_GETSINGLE_TAG, F_TAG_CYCLE, getMessage(), IpplInfo::getNodes(), IpplInfo::myNode(), TagMaker::next_tag(), putMessage(), and Communicate::receive_block().
Definition at line 100 of file BareField.hpp.
Referenced by Field< T, Dim, M, C >::initialize().
void BareField< T, Dim >::initialize | ( | Layout_t & | l, |
const bool | p | ||
) |
Definition at line 114 of file BareField.hpp.
void BareField< T, Dim >::initialize | ( | Layout_t & | l, |
const GuardCellSizes< Dim > & | gc | ||
) |
Definition at line 128 of file BareField.hpp.
Definition at line 116 of file BareField.h.
Referenced by assign(), BareField< T1, D >::fillGuardCellsIfNotDirty(), ParticleAttrib< ParticleOrigin >::gather(), BareField< T1, D >::prepareForScalarCode(), and FieldDebugPrint< T, Dim >::print().
Definition at line 148 of file BareField.h.
Referenced by PatchBC< T, D, M, C >::apply(), CalcParallelInterpolationDomain(), CalcParallelPeriodicDomain(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FieldDebugWriteb(), FunctionFaceBCApply(), ggfp1(), ggfp2(), ggfp3(), InterpolationFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), sfp1(), sfp2(), sfp3(), UniformCartesian< D, T >::storeSpacingFields(), and Cartesian< Dim, MFLOAT >::storeSpacingFields().
T & BareField< T, Dim >::localElement | ( | const NDIndex< Dim > & | Indexes | ) | const |
Definition at line 1154 of file BareField.hpp.
References IpplInfo::abort(), endl(), ERRORMSG, LField< T, Dim >::getAllocated(), LField< T, Dim >::getP(), IpplInfo::myNode(), PtrOffset(), Attrib::Legacy::Distribution::T, and LField< T, Dim >::Uncompress().
Referenced by MGPoissonSolver::computePotential().
Definition at line 327 of file BareField.h.
|
virtual |
Implements User.
Reimplemented in Field< T, Dim, Mesh, Centering >, Field< double, 3, Mesh_t, Center_t >, Field< Vector_t, 3, Mesh_t, Center_t >, and Field< T, Dim, M, C >.
Definition at line 1079 of file BareField.hpp.
References endl(), UserList::getUserListID(), and WARNMSG.
Referenced by Field< T, Dim, M, C >::notifyUserOfDelete().
|
inline |
Definition at line 155 of file BareField.h.
|
inline |
Definition at line 163 of file BareField.h.
|
inline |
Definition at line 171 of file BareField.h.
|
inline |
Definition at line 180 of file BareField.h.
|
inline |
Definition at line 416 of file BareField.h.
|
inline |
Definition at line 423 of file BareField.h.
|
inline |
Definition at line 430 of file BareField.h.
|
inline |
Definition at line 437 of file BareField.h.
|
inline |
Definition at line 262 of file BareField.h.
|
virtual |
Implements FieldLayoutUser.
Reimplemented in Field< T, Dim, Mesh, Centering >, Field< double, 3, Mesh_t, Center_t >, Field< Vector_t, 3, Mesh_t, Center_t >, and Field< T, Dim, M, C >.
Definition at line 1054 of file BareField.hpp.
References BareField< T, Dim >::Locals_ac.
Definition at line 149 of file BareField.h.
Referenced by PatchBC< T, D, M, C >::apply(), CalcParallelPeriodicDomain(), ComponentFunctionFaceBCApply(), ComponentLinearExtrapolateFaceBCApply(), ExtrapolateAndZeroFaceBCApply(), ExtrapolateFaceBCApply(), FieldDebugWriteb(), FunctionFaceBCApply(), LinearExtrapolateFaceBCApply(), PeriodicFaceBCApply(), UniformCartesian< D, T >::storeSpacingFields(), and Cartesian< Dim, MFLOAT >::storeSpacingFields().
Definition at line 207 of file BareField.h.
Referenced by BareField< T1, D >::finishScalarCode(), and BareField< T1, D >::prepareForScalarCode().
Definition at line 117 of file BareField.h.
Referenced by assign(), BareField< T1, D >::finishScalarCode(), DiscField< Dim >::read(), and BareField< T, Dim >::setGuardCells().
Definition at line 616 of file BareField.hpp.
References LField< T, Dim >::begin(), BareField< T, Dim >::begin_if(), LField< T, Dim >::Compress(), Dim, BareField< T, Dim >::end_if(), LField< T, Dim >::getAllocated(), LField< T, Dim >::getCompressedData(), LField< T, Dim >::getOwned(), LField< T, Dim >::IsCompressed(), BareField< T, Dim >::setDirtyFlag(), and LField< T, Dim >::Uncompress().
Referenced by ParticleAttrib< ParticleOrigin >::scatter(), and scatter().
Definition at line 150 of file BareField.hpp.
References IpplInfo::abort(), AddGuardCells(), endl(), and ERRORMSG.
Referenced by BareField< T, Dim >::BareField().
|
inline |
Definition at line 104 of file BareField.h.
Referenced by assign(), and BareField< T, Dim >::BareField().
Definition at line 1005 of file BareField.hpp.
References BareField< T, Dim >::begin_if(), BareField< T, Dim >::end_if(), and BareField< T, Dim >::Uncompress().
Referenced by ParticleAttrib< ParticleOrigin >::gather(), ParticleAttrib< ParticleOrigin >::scatter(), scatter(), BareField< T1, D >::setCompression(), Cartesian< Dim, MFLOAT >::storeSpacingFields(), and BareField< T, Dim >::Uncompress().
Definition at line 208 of file BareField.hpp.
References LField< T, Dim >::begin(), IpplInfo::Comm, COMM_ANY_NODE, LField< T, Dim >::end(), F_TAG_CYCLE, F_WRITE_TAG, NDIndex< Dim >::getMessage(), CompressedBrickIterator< T, Dim >::getMessage(), LField< T, Dim >::getOwned(), IpplInfo::myNode(), TagMaker::next_tag(), NDIndex< Dim >::putMessage(), Communicate::receive_block(), Communicate::send(), NDIndex< Dim >::size(), Attrib::Legacy::Distribution::T, and LField< T, Dim >::Uncompress().
Referenced by operator<<().
|
friend |
Definition at line 334 of file BareField.h.
Definition at line 354 of file BareField.h.
Referenced by BareField< T1, D >::compressible(), and BareField< T1, D >::setCompression().
Definition at line 351 of file BareField.h.
Referenced by BareField< T1, D >::clearDirtyFlag(), BareField< T1, D >::isDirty(), and BareField< T1, D >::setDirtyFlag().
|
private |
Definition at line 343 of file BareField.h.
Referenced by BareField< T, Dim >::BareField(), BareField< T1, D >::getGC(), and BareField< T1, D >::getGuardCellSizes().
Definition at line 340 of file BareField.h.
Referenced by BareField< T1, D >::getLayout().
|
protected |
Definition at line 331 of file BareField.h.
Referenced by BareField< T, Dim >::BareField(), BareField< T1, D >::begin_if(), BareField< T1, D >::end_if(), Field< T, Dim, M, C >::Repartition(), BareField< T, Dim >::Repartition(), and BareField< T1, D >::size_if().
Definition at line 357 of file BareField.h.