44 #include "ConstrainedOptPack_DecompositionSystemCoordinate.hpp"
45 #include "ConstrainedOptPack_MatrixIdentConcatStd.hpp"
46 #include "AbstractLinAlgPack_MatrixOpNonsing.hpp"
47 #include "AbstractLinAlgPack_MatrixOpSubView.hpp"
48 #include "AbstractLinAlgPack_MatrixZero.hpp"
49 #include "AbstractLinAlgPack_LinAlgOpPack.hpp"
50 #include "Teuchos_AbstractFactoryStd.hpp"
51 #include "Teuchos_dyn_cast.hpp"
52 #include "Teuchos_Assert.hpp"
54 namespace ConstrainedOptPack {
57 const VectorSpace::space_ptr_t &space_x
58 ,
const VectorSpace::space_ptr_t &space_c
60 ,
const basis_sys_tester_ptr_t &basis_sys_tester
65 space_x, space_c, basis_sys, basis_sys_tester
74 namespace rcp = MemMngPack;
96 DecompositionSystem::mat_nonsing_fcty_ptr_t::element_type::obj_ptr_t
105 namespace rcp = MemMngPack;
113 *Uy_sv = Uy ? &
dyn_cast<MatrixOpSubView>(*Uy) : NULL;
120 Uy_sv->initialize(Teuchos::null);
137 ,
const mat_nonsing_fcty_ptr_t::element_type::obj_ptr_t &C
138 ,
const mat_fcty_ptr_t::element_type::obj_ptr_t &D
145 namespace rcp = MemMngPack;
162 *Uy_sv = Uy ? &
dyn_cast<MatrixOpSubView>(*Uy) : NULL;
168 if( Y_coor && Y_coor->
D_ptr().
get() == NULL ) {
172 ,MatrixIdentConcatStd::BOTTOM
176 space_x()->sub_space(var_indep)->clone()
189 std::ostream& out,
const std::string& L )
const
192 << L <<
"*** Coordinate decompositon Y, R and Uy matrices (class DecompositionSystemCoordinate)\n"
193 << L <<
"Y = [ I; 0 ] (using class MatrixIdentConcatStd with MatrixZero)\n"
194 << L <<
"R = Gc(var_dep,equ_decomp)' = C\n"
195 << L <<
"Uy = Gc(var_dep,equ_undecomp)'\n"
DecompositionSystemCoordinate(const VectorSpace::space_ptr_t &space_x=Teuchos::null, const VectorSpace::space_ptr_t &space_c=Teuchos::null, const basis_sys_ptr_t &basis_sys=Teuchos::null, const basis_sys_tester_ptr_t &basis_sys_tester=Teuchos::null, EExplicitImplicit D_imp=MAT_IMP_AUTO, EExplicitImplicit Uz_imp=MAT_IMP_AUTO)
const mat_fcty_ptr_t factory_Y() const
EOutputLevel
Enumeration for the amount of output to create from update_decomp().
T_To & dyn_cast(T_From &from)
const basis_sys_ptr_t & basis_sys() const
void print_update_matrices(std::ostream &out, const std::string &leading_str) const
const mat_fcty_ptr_t factory_Uy() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Concrete implementation class for a matrix vertically concatonated with an identity matrix...
void initialize_matrices(std::ostream *out, EOutputLevel olevel, const mat_nonsing_fcty_ptr_t::element_type::obj_ptr_t &C, const mat_fcty_ptr_t::element_type::obj_ptr_t &D, MatrixOp *Y, MatrixOpNonsing *R, MatrixOp *Uy, EMatRelations mat_rel) const
mat_nonsing_fcty_ptr_t::element_type::obj_ptr_t uninitialize_matrices(std::ostream *out, EOutputLevel olevel, MatrixOp *Y, MatrixOpNonsing *R, MatrixOp *Uy) const
Range1D var_indep() const
virtual void initialize(const VectorSpace::space_ptr_t &space_cols, const VectorSpace::space_ptr_t &space_rows, ETopBottom top_or_bottom, value_type alpha, const D_ptr_t &D_ptr, BLAS_Cpp::Transp D_trans)
Setup with a matrix object.
size_type r() const
Returns this->basis_sys()->equ_decomp().size().
virtual const D_ptr_t & D_ptr() const
Return the smart reference counted point to the D matrix.
const VectorSpace::space_ptr_t & space_x() const
Specialization node implementation subclass of DecompositionSystem for variable reduction decompositi...
size_type n() const
Returns this->space_x()->dim().
const mat_nonsing_fcty_ptr_t factory_R() const
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)