Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
Sundance::Assembler Class Reference

List of all members.

Public Member Functions

 Assembler (const Mesh &mesh, const RCP< EquationSet > &eqn, const Array< VectorType< double > > &rowVectorType, const Array< VectorType< double > > &colVectorType, bool partitionBCs)
 Assembler (const Mesh &mesh, const RCP< EquationSet > &eqn)
const Array< RCP< DOFMapBase > > & rowMap () const
const Array< RCP< DOFMapBase > > & colMap () const
const Array< RCP
< DiscreteSpace > > & 
solutionSpace () const
const Array< RCP
< DiscreteSpace > > & 
rowSpace () const
VectorSpace< double > solnVecSpace () const
VectorSpace< double > rowVecSpace () const
const Array< RCP< Set< int > > > & bcRows () const
Playa::LinearOperator< double > allocateMatrix () const
void assemble (Playa::LinearOperator< double > &A, Array< Vector< double > > &b) const
void assembleSensitivities (Playa::LinearOperator< double > &A, Array< Vector< double > > &b) const
void assemble (Array< Vector< double > > &b) const
void evaluate (double &value, Array< Vector< double > > &gradient) const
void evaluate (double &value) const
void getGraph (int br, int bc, Array< int > &graphData, Array< int > &rowPtrs, Array< int > &nnzPerRow) const
void incrementalGetGraph (int br, int bc, IncrementallyConfigurableMatrixFactory *mf) const
void flushConfiguration () const
const RCP< EquationSet > & eqnSet () const
int maxWatchFlagSetting (const std::string &param) const

Static Public Member Functions

static int & workSetSize ()
static int & numAssembleCalls ()
static bool & matrixEliminatesRepeatedCols ()
static Time & assemblyTimer ()
static Time & configTimer ()
static Time & fillTimer ()

Private Member Functions

void init (const Mesh &mesh, const RCP< EquationSet > &eqn)
bool detectInternalBdry (int cellDim, const CellFilter &filter) const
void displayEvaluationResults (const EvalContext &context, const EvaluatableExpr *evalExpr, const Array< double > &constantCoeffs, const Array< RCP< EvalVector > > &vectorCoeffs) const
void assemblyLoop (const ComputationType &compType, RCP< AssemblyKernelBase > kernel) const
bool matNeedsConfiguration () const
void configureMatrix (LinearOperator< double > &A, Array< Vector< double > > &b) const
void configureVector (Array< Vector< double > > &b) const
void configureMatrixBlock (int br, int bc, LinearOperator< double > &A) const
void configureVectorBlock (int br, Vector< double > &b) const
Array< Array< int > > findNonzeroBlocks () const
IntegrationCellSpecifier whetherToUseCofacets (const Array< RCP< IntegralGroup > > &groups, const EvaluatableExpr *ee, bool isMaximalCell, int verb) const

Static Private Member Functions

static int defaultWorkSetSize ()

Private Attributes

bool partitionBCs_
int numConfiguredColumns_
Mesh mesh_
RCP< EquationSeteqn_
Array< RCP< DOFMapBase > > rowMap_
Array< RCP< DOFMapBase > > colMap_
Array< RCP< DiscreteSpace > > externalRowSpace_
Array< RCP< DiscreteSpace > > externalColSpace_
Array< RCP< DiscreteSpace > > privateRowSpace_
Array< RCP< DiscreteSpace > > privateColSpace_
Array< RCP< Set< int > > > bcRows_
Array< RegionQuadComborqc_
Map< ComputationType, Array
< EvalContext > > 
contexts_
Map< ComputationType, Array
< int > > 
skipRqc_
Array< int > isBCRqc_
Array< int > isInternalBdry_
Map< ComputationType, Array
< Array< RCP< IntegralGroup > > > > 
groups_
Array< RCP< StdFwkEvalMediator > > mediators_
Map< ComputationType, Array
< const EvaluatableExpr * > > 
evalExprs_
RCP< EvalManagerevalMgr_
Array< RCP< Array< int > > > isBCRow_
Array< RCP< Array< int > > > isBCCol_
Array< RCP< std::set< int > > > remoteBCCols_
Array< int > lowestRow_
Array< int > lowestCol_
Array< VectorType< double > > rowVecType_
Array< VectorType< double > > colVecType_
Map< int, int > testIDToBlockMap_
Map< int, int > unkIDToBlockMap_
Map< int, int > fixedParamIDToVectorNumber_
Map< ComputationType, Array
< IntegrationCellSpecifier > > 
rqcRequiresMaximalCofacets_
LinearOperator< double > cachedAssembledMatrix_

Detailed Description

Definition at line 73 of file SundanceAssembler.hpp.


Constructor & Destructor Documentation

Assembler::Assembler ( const Mesh mesh,
const RCP< EquationSet > &  eqn,
const Array< VectorType< double > > &  rowVectorType,
const Array< VectorType< double > > &  colVectorType,
bool  partitionBCs 
)

Definition at line 129 of file SundanceAssembler.cpp.

References assemblerCtorTimer(), and Sundance::init().

Assembler::Assembler ( const Mesh mesh,
const RCP< EquationSet > &  eqn 
)

Definition at line 168 of file SundanceAssembler.cpp.

References assemblerCtorTimer(), and Sundance::init().


Member Function Documentation

Allocate, but do not fill, the matrix

Definition at line 950 of file SundanceAssembler.cpp.

References configureMatrix().

void Sundance::Assembler::assemble ( Playa::LinearOperator< double > &  A,
Array< Vector< double > > &  b 
) const
void Sundance::Assembler::assemble ( Array< Vector< double > > &  b) const
void Assembler::assembleSensitivities ( Playa::LinearOperator< double > &  A,
Array< Vector< double > > &  b 
) const
void Assembler::assemblyLoop ( const ComputationType compType,
RCP< AssemblyKernelBase kernel 
) const [private]
static Time& Sundance::Assembler::assemblyTimer ( ) [inline, static]

Definition at line 168 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities().

const Array<RCP<Set<int> > >& Sundance::Assembler::bcRows ( ) const [inline]

Definition at line 113 of file SundanceAssembler.hpp.

References bcRows_.

const Array<RCP<DOFMapBase> >& Sundance::Assembler::colMap ( ) const [inline]

Definition at line 95 of file SundanceAssembler.hpp.

References colMap_.

Referenced by configureMatrixBlock().

static Time& Sundance::Assembler::configTimer ( ) [inline, static]

Definition at line 176 of file SundanceAssembler.hpp.

Referenced by configureMatrix(), configureMatrixBlock(), and configureVector().

void Assembler::configureMatrix ( LinearOperator< double > &  A,
Array< Vector< double > > &  b 
) const [private]
void Assembler::configureMatrixBlock ( int  br,
int  bc,
LinearOperator< double > &  A 
) const [private]
void Assembler::configureVector ( Array< Vector< double > > &  b) const [private]
void Assembler::configureVectorBlock ( int  br,
Vector< double > &  b 
) const [private]
static int Sundance::Assembler::defaultWorkSetSize ( ) [inline, static, private]

Definition at line 241 of file SundanceAssembler.hpp.

Referenced by workSetSize().

bool Assembler::detectInternalBdry ( int  cellDim,
const CellFilter filter 
) const [private]
void Assembler::displayEvaluationResults ( const EvalContext context,
const EvaluatableExpr evalExpr,
const Array< double > &  constantCoeffs,
const Array< RCP< EvalVector > > &  vectorCoeffs 
) const [private]

Definition at line 963 of file SundanceAssembler.cpp.

References Playa::Out::os(), and Sundance::EvaluatableExpr::sparsitySuperset().

Referenced by assemblyLoop().

const RCP<EquationSet>& Sundance::Assembler::eqnSet ( ) const [inline]

Definition at line 161 of file SundanceAssembler.hpp.

References eqn_.

Referenced by maxWatchFlagSetting().

void Sundance::Assembler::evaluate ( double &  value,
Array< Vector< double > > &  gradient 
) const
void Sundance::Assembler::evaluate ( double &  value) const
static Time& Sundance::Assembler::fillTimer ( ) [inline, static]

Definition at line 184 of file SundanceAssembler.hpp.

Referenced by assemblyLoop().

Array< Array< int > > Assembler::findNonzeroBlocks ( ) const [private]
void Assembler::getGraph ( int  br,
int  bc,
Array< int > &  graphData,
Array< int > &  rowPtrs,
Array< int > &  nnzPerRow 
) const
void Assembler::incrementalGetGraph ( int  br,
int  bc,
IncrementallyConfigurableMatrixFactory mf 
) const
void Assembler::init ( const Mesh mesh,
const RCP< EquationSet > &  eqn 
) [private]
bool Assembler::matNeedsConfiguration ( ) const [private]

Definition at line 2182 of file SundanceAssembler.cpp.

References cachedAssembledMatrix_, and Playa::Handle< PointerType >::ptr().

Referenced by configureMatrix().

static bool& Sundance::Assembler::matrixEliminatesRepeatedCols ( ) [inline, static]

Definition at line 158 of file SundanceAssembler.hpp.

int Assembler::maxWatchFlagSetting ( const std::string &  param) const

Definition at line 2177 of file SundanceAssembler.cpp.

References eqnSet().

static int& Sundance::Assembler::numAssembleCalls ( ) [inline, static]

Definition at line 155 of file SundanceAssembler.hpp.

const Array<RCP<DOFMapBase> >& Sundance::Assembler::rowMap ( ) const [inline]

Definition at line 91 of file SundanceAssembler.hpp.

References rowMap_.

Referenced by configureMatrixBlock().

const Array<RCP<DiscreteSpace> >& Sundance::Assembler::rowSpace ( ) const [inline]

Definition at line 103 of file SundanceAssembler.hpp.

References externalRowSpace_.

Referenced by configureMatrixBlock(), configureVector(), and rowVecSpace().

VectorSpace< double > Assembler::rowVecSpace ( ) const

Definition at line 2153 of file SundanceAssembler.cpp.

References eqn_, and rowSpace().

Referenced by configureMatrix().

VectorSpace< double > Assembler::solnVecSpace ( ) const

Definition at line 2136 of file SundanceAssembler.cpp.

References eqn_, and solutionSpace().

Referenced by configureMatrix().

const Array<RCP<DiscreteSpace> >& Sundance::Assembler::solutionSpace ( ) const [inline]

Definition at line 99 of file SundanceAssembler.hpp.

References externalColSpace_.

Referenced by solnVecSpace().

IntegrationCellSpecifier Assembler::whetherToUseCofacets ( const Array< RCP< IntegralGroup > > &  groups,
const EvaluatableExpr ee,
bool  isMaximalCell,
int  verb 
) const [private]
int & Assembler::workSetSize ( ) [static]

Definition at line 2171 of file SundanceAssembler.cpp.

References defaultWorkSetSize().

Referenced by assemblyLoop(), and getGraph().


Member Data Documentation

Array<RCP<Set<int> > > Sundance::Assembler::bcRows_ [private]

Definition at line 263 of file SundanceAssembler.hpp.

Referenced by bcRows(), and init().

Cached reference to the previously assembled matrix A null value signals that matrix must be assembled

Definition at line 307 of file SundanceAssembler.hpp.

Referenced by configureMatrix(), flushConfiguration(), and matNeedsConfiguration().

Array<RCP<DOFMapBase> > Sundance::Assembler::colMap_ [private]
Array<VectorType<double> > Sundance::Assembler::colVecType_ [private]

Definition at line 295 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 267 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities(), assemblyLoop(), and init().

Definition at line 279 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 281 of file SundanceAssembler.hpp.

Referenced by assemblyLoop().

Definition at line 257 of file SundanceAssembler.hpp.

Referenced by init(), and solutionSpace().

Definition at line 255 of file SundanceAssembler.hpp.

Referenced by init(), and rowSpace().

Definition at line 301 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 275 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Array<RCP<Array<int> > > Sundance::Assembler::isBCCol_ [private]

Definition at line 285 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities(), and init().

Array<RCP<Array<int> > > Sundance::Assembler::isBCRow_ [private]

Definition at line 283 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities(), getGraph(), and init().

Array<int> Sundance::Assembler::isBCRqc_ [private]

Definition at line 271 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 273 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Array<int> Sundance::Assembler::lowestCol_ [private]

Definition at line 291 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities().

Array<int> Sundance::Assembler::lowestRow_ [private]

Definition at line 289 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities(), configureMatrixBlock(), getGraph(), and init().

Definition at line 277 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 245 of file SundanceAssembler.hpp.

Referenced by configureVector(), and flushConfiguration().

Definition at line 261 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

Array<RCP<std::set<int> > > Sundance::Assembler::remoteBCCols_ [private]

Definition at line 287 of file SundanceAssembler.hpp.

Array<RCP<DOFMapBase> > Sundance::Assembler::rowMap_ [private]
Array<VectorType<double> > Sundance::Assembler::rowVecType_ [private]

Definition at line 293 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

Definition at line 265 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), flushConfiguration(), and init().

Definition at line 303 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 269 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 297 of file SundanceAssembler.hpp.

Definition at line 299 of file SundanceAssembler.hpp.

Site Contact