| 
    Nektar++
    
   | 
 
#include <Preconditioner.h>


Protected Member Functions | |
| virtual DNekScalMatSharedPtr | v_TransformedSchurCompl (int offset, const boost::shared_ptr< DNekScalMat > &loc_mat) | 
Get block elemental transposed transformation matrix  .  More... | |
Protected Attributes | |
| const boost::weak_ptr < GlobalLinSys >  | m_linsys | 
| PreconditionerType | m_preconType | 
| DNekMatSharedPtr | m_preconditioner | 
| boost::shared_ptr< AssemblyMap > | m_locToGloMap | 
| LibUtilities::CommSharedPtr | m_comm | 
Private Member Functions | |
| void | NullPreconditioner (void) | 
| virtual void | v_InitObject () | 
| virtual void | v_DoPreconditioner (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) | 
| Apply a preconditioner to the conjugate gradient method.  More... | |
| virtual void | v_DoPreconditionerWithNonVertOutput (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput, const Array< OneD, NekDouble > &pNonVertOutput, Array< OneD, NekDouble > &pVertForce) | 
| Apply a preconditioner to the conjugate gradient method with an output for non-vertex degrees of freedom.  More... | |
| virtual void | v_DoTransformToLowEnergy (Array< OneD, NekDouble > &pInOut, int offset) | 
| Transform from original basis to low energy basis.  More... | |
| virtual void | v_DoTransformToLowEnergy (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) | 
| Transform from original basis to low energy basis.  More... | |
| virtual void | v_DoTransformFromLowEnergy (Array< OneD, NekDouble > &pInput) | 
| Transform from low energy basis to orignal basis.  More... | |
| virtual void | v_DoMultiplybyInverseTransformationMatrix (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) | 
| Multiply by the block inverse transformation matrix.  More... | |
| virtual void | v_DoMultiplybyInverseTransposedTransformationMatrix (const Array< OneD, NekDouble > &pInput, Array< OneD, NekDouble > &pOutput) | 
| Multiply by the block transposed inverse transformation matrix.  More... | |
| virtual void | v_BuildPreconditioner () | 
Static Private Attributes | |
| static std::string | lookupIds [] | 
| static std::string | def | 
This class implements preconditioning for the conjugate gradient matrix solver.
This class implements diagonal preconditioning for the conjugate gradient matrix solver.
Definition at line 66 of file Preconditioner.h.
| Nektar::MultiRegions::Preconditioner::Preconditioner | ( | const boost::shared_ptr< GlobalLinSys > & | plinsys, | 
| const AssemblyMapSharedPtr & | pLocToGloMap | ||
| ) | 
Definition at line 76 of file Preconditioner.cpp.
      
  | 
  inlinevirtual | 
Definition at line 74 of file Preconditioner.h.
| Array< OneD, NekDouble > Nektar::MultiRegions::Preconditioner::AssembleStaticCondGlobalDiagonals | ( | ) | 
Performs global assembly of diagonal entries to global Schur complement matrix.
Definition at line 191 of file Preconditioner.cpp.
References m_linsys, and m_locToGloMap.
Referenced by Nektar::MultiRegions::PreconditionerDiagonal::StaticCondDiagonalPreconditionerSum().
      
  | 
  inline | 
Definition at line 280 of file Preconditioner.h.
References v_BuildPreconditioner().
      
  | 
  inline | 
Definition at line 259 of file Preconditioner.h.
References v_DoMultiplybyInverseTransformationMatrix().
      
  | 
  inline | 
Definition at line 270 of file Preconditioner.h.
References v_DoMultiplybyInverseTransposedTransformationMatrix().
      
  | 
  inline | 
Definition at line 207 of file Preconditioner.h.
References v_DoPreconditioner().
      
  | 
  inline | 
Definition at line 218 of file Preconditioner.h.
References v_DoPreconditionerWithNonVertOutput().
      
  | 
  inline | 
Definition at line 250 of file Preconditioner.h.
References v_DoTransformFromLowEnergy().
      
  | 
  inline | 
Definition at line 231 of file Preconditioner.h.
References v_DoTransformToLowEnergy().
      
  | 
  inline | 
Definition at line 240 of file Preconditioner.h.
References v_DoTransformToLowEnergy().
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
      
  | 
  inline | 
Definition at line 190 of file Preconditioner.h.
References v_InitObject().
      
  | 
  inline | 
Definition at line 198 of file Preconditioner.h.
References v_TransformedSchurCompl().
      
  | 
  privatevirtual | 
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy, Nektar::MultiRegions::PreconditionerNull, Nektar::MultiRegions::PreconditionerLinear, Nektar::MultiRegions::PreconditionerLinearWithLowEnergy, Nektar::MultiRegions::PreconditionerDiagonal, Nektar::MultiRegions::PreconditionerBlock, Nektar::MultiRegions::PreconditionerLinearWithDiag, and Nektar::MultiRegions::PreconditionerLinearWithBlock.
Definition at line 172 of file Preconditioner.cpp.
Referenced by BuildPreconditioner().
      
  | 
  privatevirtual | 
Multiply by the block inverse transformation matrix.
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy.
Definition at line 155 of file Preconditioner.cpp.
References ErrorUtil::efatal, and NEKERROR.
Referenced by DoMultiplybyInverseTransformationMatrix().
      
  | 
  privatevirtual | 
Multiply by the block transposed inverse transformation matrix.
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy.
Definition at line 165 of file Preconditioner.cpp.
References ErrorUtil::efatal, and NEKERROR.
Referenced by DoMultiplybyInverseTransposedTransformationMatrix().
      
  | 
  privatevirtual | 
Apply a preconditioner to the conjugate gradient method.
Reimplemented in Nektar::MultiRegions::PreconditionerNull, Nektar::MultiRegions::PreconditionerLowEnergy, Nektar::MultiRegions::PreconditionerLinear, Nektar::MultiRegions::PreconditionerLinearWithLowEnergy, Nektar::MultiRegions::PreconditionerDiagonal, Nektar::MultiRegions::PreconditionerBlock, Nektar::MultiRegions::PreconditionerLinearWithDiag, and Nektar::MultiRegions::PreconditionerLinearWithBlock.
Definition at line 105 of file Preconditioner.cpp.
References ErrorUtil::efatal, and NEKERROR.
Referenced by DoPreconditioner().
      
  | 
  privatevirtual | 
Apply a preconditioner to the conjugate gradient method with an output for non-vertex degrees of freedom.
Reimplemented in Nektar::MultiRegions::PreconditionerLinear.
Definition at line 116 of file Preconditioner.cpp.
References ErrorUtil::efatal, and NEKERROR.
Referenced by DoPreconditionerWithNonVertOutput().
      
  | 
  privatevirtual | 
Transform from low energy basis to orignal basis.
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy, and Nektar::MultiRegions::PreconditionerLinearWithLowEnergy.
Definition at line 146 of file Preconditioner.cpp.
References Vmath::Smul().
Referenced by DoTransformFromLowEnergy().
      
  | 
  privatevirtual | 
Transform from original basis to low energy basis.
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy, and Nektar::MultiRegions::PreconditionerLinearWithLowEnergy.
Definition at line 128 of file Preconditioner.cpp.
Referenced by DoTransformToLowEnergy().
      
  | 
  privatevirtual | 
Transform from original basis to low energy basis.
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy.
Definition at line 137 of file Preconditioner.cpp.
      
  | 
  privatevirtual | 
Reimplemented in Nektar::MultiRegions::PreconditionerNull, Nektar::MultiRegions::PreconditionerLowEnergy, Nektar::MultiRegions::PreconditionerLinear, Nektar::MultiRegions::PreconditionerBlock, Nektar::MultiRegions::PreconditionerDiagonal, Nektar::MultiRegions::PreconditionerLinearWithDiag, Nektar::MultiRegions::PreconditionerLinearWithLowEnergy, and Nektar::MultiRegions::PreconditionerLinearWithBlock.
Definition at line 97 of file Preconditioner.cpp.
References ErrorUtil::efatal, and NEKERROR.
Referenced by InitObject().
      
  | 
  protectedvirtual | 
Get block elemental transposed transformation matrix 
. 
Reimplemented in Nektar::MultiRegions::PreconditionerLowEnergy, and Nektar::MultiRegions::PreconditionerLinearWithLowEnergy.
Definition at line 180 of file Preconditioner.cpp.
Referenced by TransformedSchurCompl().
      
  | 
  staticprivate | 
Definition at line 183 of file Preconditioner.h.
      
  | 
  staticprivate | 
Definition at line 182 of file Preconditioner.h.
      
  | 
  protected | 
      
  | 
  protected | 
Definition at line 134 of file Preconditioner.h.
Referenced by AssembleStaticCondGlobalDiagonals(), Nektar::MultiRegions::PreconditionerDiagonal::DiagonalPreconditionerSum(), Nektar::MultiRegions::PreconditionerLinear::v_BuildPreconditioner(), Nektar::MultiRegions::PreconditionerLinearWithBlock::v_InitObject(), Nektar::MultiRegions::PreconditionerLinearWithLowEnergy::v_InitObject(), and Nektar::MultiRegions::PreconditionerLinearWithDiag::v_InitObject().
      
  | 
  protected | 
Definition at line 137 of file Preconditioner.h.
Referenced by AssembleStaticCondGlobalDiagonals(), Nektar::MultiRegions::PreconditionerDiagonal::DiagonalPreconditionerSum(), Nektar::MultiRegions::PreconditionerDiagonal::StaticCondDiagonalPreconditionerSum(), Nektar::MultiRegions::PreconditionerDiagonal::v_BuildPreconditioner(), Nektar::MultiRegions::PreconditionerLinear::v_BuildPreconditioner(), Nektar::MultiRegions::PreconditionerDiagonal::v_DoPreconditioner(), Nektar::MultiRegions::PreconditionerLinear::v_DoPreconditionerWithNonVertOutput(), Nektar::MultiRegions::PreconditionerLinearWithBlock::v_InitObject(), Nektar::MultiRegions::PreconditionerLinearWithLowEnergy::v_InitObject(), and Nektar::MultiRegions::PreconditionerLinearWithDiag::v_InitObject().
      
  | 
  protected | 
Definition at line 136 of file Preconditioner.h.
      
  | 
  protected | 
Definition at line 135 of file Preconditioner.h.
 1.8.8