void panzer::ScatterDirichletResidual_BlockedEpetra<panzer::Traits::Jacobian, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { typedef BlockedEpetraLinearObjContainer BLOC; // extract dirichlet counter from container Teuchos::RCP<BLOC> blockContainer = Teuchos::rcp_dynamic_cast<BLOC>(d.getDataObject("Dirichlet Counter"),true); dirichletCounter_ = Teuchos::rcp_dynamic_cast<Thyra::ProductVectorBase<double> >(blockContainer->get_x(),true); TEUCHOS_ASSERT(!Teuchos::is_null(dirichletCounter_)); // extract linear object container blockedContainer_ = Teuchos::rcp_dynamic_cast<const BLOC>(d.getDataObject(globalDataKey_),true); TEUCHOS_ASSERT(!Teuchos::is_null(blockedContainer_)); }
void panzer::ScatterResidual_BlockedEpetra<panzer::Traits::Residual, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { typedef BlockedEpetraLinearObjContainer BLOC; // extract linear object container blockedContainer_ = Teuchos::rcp_dynamic_cast<const BLOC>(d.getDataObject(globalDataKey_),true); }
void panzer::GatherSolution_Epetra<panzer::Traits::Jacobian, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { // extract linear object container epetraContainer_ = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(d.getDataObject(globalDataKey_),true); }
void panzer::GatherSolution_Tpetra<panzer::Traits::SGJacobian, Traits,LO,GO,NodeT>:: preEvaluate(typename Traits::PreEvalData d) { typedef SGTpetraLinearObjContainer<double,LO,GO,NodeT> SGLOC; // extract linear object container sgTpetraContainer_ = Teuchos::rcp_dynamic_cast<SGLOC>(d.getDataObject(globalDataKey_),true); }
void panzer::ScatterInitialCondition_Epetra<panzer::Traits::Tangent, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { // extract linear object container epetraContainer_ = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(d.getDataObject(globalDataKey_)); if(epetraContainer_==Teuchos::null) { // extract linear object container Teuchos::RCP<LinearObjContainer> loc = Teuchos::rcp_dynamic_cast<LOCPair_GlobalEvaluationData>(d.getDataObject(globalDataKey_),true)->getGhostedLOC(); epetraContainer_ = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(loc); } }
void panzer::ScatterDirichletResidual_Epetra<panzer::Traits::Jacobian, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { // extract linear object container epetraContainer_ = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(d.getDataObject(globalDataKey_)); if(epetraContainer_==Teuchos::null) { // extract linear object container Teuchos::RCP<LinearObjContainer> loc = Teuchos::rcp_dynamic_cast<LOCPair_GlobalEvaluationData>(d.getDataObject(globalDataKey_),true)->getGhostedLOC(); epetraContainer_ = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(loc,true); dirichletCounter_ = Teuchos::null; } else { // extract dirichlet counter from container Teuchos::RCP<EpetraLinearObjContainer> epetraContainer = Teuchos::rcp_dynamic_cast<EpetraLinearObjContainer>(d.getDataObject("Dirichlet Counter"),true); dirichletCounter_ = epetraContainer->get_x(); TEUCHOS_ASSERT(!Teuchos::is_null(dirichletCounter_)); } }
void panzer::ScatterResidual_BlockedEpetra<panzer::Traits::Jacobian, Traits,LO,GO>:: preEvaluate(typename Traits::PreEvalData d) { using Teuchos::RCP; using Teuchos::rcp_dynamic_cast; typedef BlockedEpetraLinearObjContainer BLOC; // extract linear object container blockedContainer_ = rcp_dynamic_cast<const BLOC>(d.getDataObject(globalDataKey_)); if(blockedContainer_==Teuchos::null) { RCP<const LOCPair_GlobalEvaluationData> gdata = rcp_dynamic_cast<const LOCPair_GlobalEvaluationData>(d.getDataObject(globalDataKey_),true); blockedContainer_ = rcp_dynamic_cast<const BLOC>(gdata->getGhostedLOC()); } }
void panzer::GatherSolution_BlockedTpetra<panzer::Traits::Jacobian, Traits,S,LO,GO,NodeT>:: preEvaluate(typename Traits::PreEvalData d) { // extract linear object container blockedContainer_ = Teuchos::rcp_dynamic_cast<const ContainerType>(d.getDataObject(globalDataKey_),true); }