コード例 #1
0
ファイル: schur_precond.cpp プロジェクト: stephanmg/ugcore
void SchurPrecond<TAlgebra>::
schur_solve_skeleton(vector_type &u_skeleton, const vector_type &f_skeleton)
{
	SCHUR_PROFILE_BEGIN(SchurSolverStep_SchurSolve);

	UG_DLOG(SchurDebug, 3, "\n% 'SchurPrecond::step() - skeleton solve':");

	if(!f_skeleton.has_storage_type(PST_ADDITIVE))
	{ UG_THROW("ERROR: In 'SchurPrecond::step':Inadequate storage format of 'f_skeleton'.\n"); }

	if (!m_spSkeletonSolver->apply(u_skeleton, f_skeleton))
	{ UG_LOG("SchurPrecond: Failed to solve skeleton system!\n"); }

	if(!u_skeleton.has_storage_type(PST_CONSISTENT))
	{ UG_THROW("ERROR: In 'SchurPrecond::step':Inadequate storage format of 'u_skeleton'.\n"); }

	//UG_LOG("\nu_skeleton="); UG_LOG_Vector<vector_type>(u_skeleton);

}