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 ()
TSFExtended::LinearOperator
< double > 
allocateMatrix () const
 Allocate, but do not fill, the matrix.
void assemble (TSFExtended::LinearOperator< double > &A, Array< Vector< double > > &b) const
void assembleSensitivities (TSFExtended::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 ()
Vector< double > convertToMonolithicVector (const Array< Vector< double > > &internalBlock, const Array< Vector< double > > &bcBlock) 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
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_
bool matNeedsConfiguration_
bool matNeedsFinalization_
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< RCP< Set< int > > > bcCols_
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_
Array< RCP
< PartitionedToMonolithicConverter > > 
converter_

Detailed Description

Definition at line 75 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 130 of file SundanceAssembler.cpp.

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

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

Definition at line 173 of file SundanceAssembler.cpp.

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


Member Function Documentation

TSFExtended::LinearOperator< double > Assembler::allocateMatrix ( ) const

Allocate, but do not fill, the matrix.

Definition at line 959 of file SundanceAssembler.cpp.

References configureMatrix().

void Assembler::assemble ( TSFExtended::LinearOperator< double > &  A,
Array< Vector< double > > &  b 
) const
void Assembler::assemble ( Array< Vector< double > > &  b) const
void Assembler::assembleSensitivities ( TSFExtended::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 179 of file SundanceAssembler.hpp.

Referenced by assemble(), assembleSensitivities(), and evaluate().

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

Definition at line 115 of file SundanceAssembler.hpp.

References bcRows_.

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

Definition at line 97 of file SundanceAssembler.hpp.

References colMap_.

Referenced by configureMatrixBlock().

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

Definition at line 187 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]
Vector< double > Assembler::convertToMonolithicVector ( const Array< Vector< double > > &  internalBlock,
const Array< Vector< double > > &  bcBlock 
) const
static int Sundance::Assembler::defaultWorkSetSize ( ) [inline, static, private]

Definition at line 250 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]
const RCP<EquationSet>& Sundance::Assembler::eqnSet ( ) const [inline]

Definition at line 172 of file SundanceAssembler.hpp.

References eqn_.

Referenced by maxWatchFlagSetting().

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

Definition at line 195 of file SundanceAssembler.hpp.

Referenced by assemblyLoop().

Array< Array< int > > Assembler::findNonzeroBlocks ( ) const [private]
void Sundance::Assembler::flushConfiguration ( ) [inline]

Definition at line 154 of file SundanceAssembler.hpp.

References matNeedsConfiguration_, and numConfiguredColumns_.

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]
static bool& Sundance::Assembler::matrixEliminatesRepeatedCols ( ) [inline, static]

Definition at line 169 of file SundanceAssembler.hpp.

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

Definition at line 2222 of file SundanceAssembler.cpp.

References eqnSet().

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

Definition at line 166 of file SundanceAssembler.hpp.

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

Definition at line 93 of file SundanceAssembler.hpp.

References rowMap_.

Referenced by configureMatrixBlock().

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

Definition at line 105 of file SundanceAssembler.hpp.

References externalRowSpace_.

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

VectorSpace< double > Assembler::rowVecSpace ( ) const

Definition at line 2157 of file SundanceAssembler.cpp.

References eqn_, TSFExtended::productSpace(), and rowSpace().

Referenced by configureMatrix().

VectorSpace< double > Assembler::solnVecSpace ( ) const

Definition at line 2140 of file SundanceAssembler.cpp.

References eqn_, TSFExtended::productSpace(), and solutionSpace().

Referenced by configureMatrix().

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

Definition at line 101 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 2216 of file SundanceAssembler.cpp.

References defaultWorkSetSize().

Referenced by assemblyLoop(), getGraph(), and Sundance::SundanceGlobal::init().


Member Data Documentation

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

Definition at line 278 of file SundanceAssembler.hpp.

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

Definition at line 276 of file SundanceAssembler.hpp.

Referenced by bcRows().

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

Definition at line 310 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

Definition at line 282 of file SundanceAssembler.hpp.

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

Definition at line 320 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 294 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 296 of file SundanceAssembler.hpp.

Referenced by assemblyLoop().

Definition at line 270 of file SundanceAssembler.hpp.

Referenced by init(), and solutionSpace().

Definition at line 268 of file SundanceAssembler.hpp.

Referenced by init(), and rowSpace().

Definition at line 316 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 290 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

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

Definition at line 300 of file SundanceAssembler.hpp.

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

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

Definition at line 286 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 288 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

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

Definition at line 306 of file SundanceAssembler.hpp.

Referenced by assemble(), assembleSensitivities(), and configureMatrixBlock().

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

Definition at line 254 of file SundanceAssembler.hpp.

Referenced by configureMatrix(), and flushConfiguration().

Definition at line 256 of file SundanceAssembler.hpp.

Definition at line 292 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 260 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), detectInternalBdry(), evaluate(), getGraph(), and init().

Definition at line 258 of file SundanceAssembler.hpp.

Referenced by configureVector(), and flushConfiguration().

Definition at line 274 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

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

Definition at line 302 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock().

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

Definition at line 308 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

Definition at line 280 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 318 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 284 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 312 of file SundanceAssembler.hpp.

Definition at line 314 of file SundanceAssembler.hpp.

Site Contact