shared_ptr<DiscreteBoundaryOperator<ResultType>> ElementaryLocalOperator<BasisFunctionType, ResultType>:: assembleWeakFormInternalImpl2( LocalAssembler &assembler, const Context<BasisFunctionType, ResultType> &context) const { #ifdef WITH_TRILINOS if (context.assemblyOptions().isSparseStorageOfLocalOperatorsEnabled()) return shared_ptr<DiscreteBoundaryOperator<ResultType>>( assembleWeakFormInSparseMode(assembler, context.assemblyOptions()) .release()); #endif return shared_ptr<DiscreteBoundaryOperator<ResultType>>( assembleWeakFormInDenseMode(assembler, context.assemblyOptions()) .release()); }
shared_ptr<DiscreteBoundaryOperator<ResultType> > HypersingularIntegralOperator<BasisFunctionType, KernelType, ResultType>:: assembleWeakFormInternal( LocalAssembler& standardAssembler, LocalAssembler& offDiagonalAssembler, const Context<BasisFunctionType, ResultType>& context) const { switch (context.assemblyOptions().assemblyMode()) { case AssemblyOptions::DENSE: return shared_ptr<DiscreteBoundaryOperator<ResultType> >( assembleWeakFormInDenseMode(standardAssembler, context).release()); case AssemblyOptions::ACA: return shared_ptr<DiscreteBoundaryOperator<ResultType> >( assembleWeakFormInAcaMode( standardAssembler, offDiagonalAssembler, context).release()); default: throw std::runtime_error( "HypersingularIntegralOperator::assembleWeakFormInternalImpl(): " "invalid assembly mode"); } }