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 84 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 140 of file SundanceAssembler.cpp.

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

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

Definition at line 179 of file SundanceAssembler.cpp.

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


Member Function Documentation

Allocate, but do not fill, the matrix

Definition at line 961 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 179 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities().

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

Definition at line 124 of file SundanceAssembler.hpp.

References bcRows_.

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

Definition at line 106 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]
static int Sundance::Assembler::defaultWorkSetSize ( ) [inline, static, private]

Definition at line 252 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 974 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 172 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 195 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 2193 of file SundanceAssembler.cpp.

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

Referenced by configureMatrix().

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 2188 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 102 of file SundanceAssembler.hpp.

References rowMap_.

Referenced by configureMatrixBlock().

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

Definition at line 114 of file SundanceAssembler.hpp.

References externalRowSpace_.

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

VectorSpace< double > Assembler::rowVecSpace ( ) const

Definition at line 2164 of file SundanceAssembler.cpp.

References eqn_, and rowSpace().

Referenced by configureMatrix().

VectorSpace< double > Assembler::solnVecSpace ( ) const

Definition at line 2147 of file SundanceAssembler.cpp.

References eqn_, and solutionSpace().

Referenced by configureMatrix().

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

Definition at line 110 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 2182 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 274 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 318 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 306 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 278 of file SundanceAssembler.hpp.

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

Definition at line 290 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 292 of file SundanceAssembler.hpp.

Referenced by assemblyLoop().

Definition at line 268 of file SundanceAssembler.hpp.

Referenced by init(), and solutionSpace().

Definition at line 266 of file SundanceAssembler.hpp.

Referenced by init(), and rowSpace().

Definition at line 312 of file SundanceAssembler.hpp.

Referenced by init().

Definition at line 286 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

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

Definition at line 296 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities(), and init().

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

Definition at line 294 of file SundanceAssembler.hpp.

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

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

Definition at line 282 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 284 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

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

Definition at line 302 of file SundanceAssembler.hpp.

Referenced by assembleSensitivities().

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

Definition at line 300 of file SundanceAssembler.hpp.

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

Definition at line 288 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 256 of file SundanceAssembler.hpp.

Referenced by configureVector(), and flushConfiguration().

Definition at line 272 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

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

Definition at line 298 of file SundanceAssembler.hpp.

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

Definition at line 304 of file SundanceAssembler.hpp.

Referenced by configureMatrixBlock(), and init().

Definition at line 276 of file SundanceAssembler.hpp.

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

Definition at line 314 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 280 of file SundanceAssembler.hpp.

Referenced by assemblyLoop(), and init().

Definition at line 308 of file SundanceAssembler.hpp.

Definition at line 310 of file SundanceAssembler.hpp.

Site Contact