void Albany::PoissonsEquationProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { int physSets = meshSpecs.size(); *out << "Num MeshSpecs: " << physSets << '\n'; fm.resize(physSets); bool haveSidesets = false; *out << "Calling PoissonsEquationProblem::buildEvaluators" << '\n'; for (int ps = 0; ps < physSets; ++ps) { fm[ps] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[ps], *meshSpecs[ps], stateMgr, BUILD_RESID_FM, Teuchos::null); if (meshSpecs[ps]->ssNames.size() > 0) haveSidesets = true; } constructDirichletEvaluators(*meshSpecs[0]); if( haveSidesets ) constructNeumannEvaluators(meshSpecs[0]); if( params->isType<Teuchos::RCP<ATO::Topology> >("Topology") ) setupTopOpt(meshSpecs,stateMgr); }
//------------------------------------------------------------------------------ void Albany::MechanicsProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct>> meshSpecs, Albany::StateManager& stateMgr) { // Construct All Phalanx Evaluators int physSets = meshSpecs.size(); *out << "Num MeshSpecs: " << physSets << '\n'; fm.resize(physSets); bool haveSidesets = false; *out << "Calling MechanicsProblem::buildEvaluators" << '\n'; for (int ps = 0; ps < physSets; ++ps) { fm[ps] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[ps], *meshSpecs[ps], stateMgr, BUILD_RESID_FM, Teuchos::null); if (meshSpecs[ps]->ssNames.size() > 0) haveSidesets = true; } constructDirichletEvaluators(*meshSpecs[0]); if (haveSidesets) constructNeumannEvaluators(meshSpecs[0]); }
void Albany::HeatProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { /* Construct All Phalanx Evaluators */ int physSets = meshSpecs.size(); std::cout << "Heat Problem Num MeshSpecs: " << physSets << std::endl; fm.resize(physSets); for (int ps=0; ps<physSets; ps++) { fm[ps] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[ps], *meshSpecs[ps], stateMgr, BUILD_RESID_FM, Teuchos::null); } if(meshSpecs[0]->nsNames.size() > 0) // Build a nodeset evaluator if nodesets are present constructDirichletEvaluators(meshSpecs[0]->nsNames); if(meshSpecs[0]->ssNames.size() > 0) // Build a sideset evaluator if sidesets are present constructNeumannEvaluators(meshSpecs[0]); }
void Hydrology::buildProblem (Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { // Building cell basis and cubature const CellTopologyData * const cell_top = &meshSpecs[0]->ctd; intrepidBasis = Albany::getIntrepid2Basis(*cell_top); cellType = Teuchos::rcp(new shards::CellTopology (cell_top)); Intrepid2::DefaultCubatureFactory cubFactory; cubature = cubFactory.create<PHX::Device, RealType, RealType>(*cellType, meshSpecs[0]->cubatureDegree); elementBlockName = meshSpecs[0]->ebName; const int worksetSize = meshSpecs[0]->worksetSize; const int numCellVertices = cellType->getNodeCount(); const int numCellNodes = intrepidBasis->getCardinality(); const int numCellQPs = cubature->getNumPoints(); dl = Teuchos::rcp(new Albany::Layouts(worksetSize,numCellVertices,numCellNodes,numCellQPs,numDim)); /* Construct All Phalanx Evaluators */ TEUCHOS_TEST_FOR_EXCEPTION(meshSpecs.size()!=1,std::logic_error,"Problem supports one Material Block"); fm.resize(1); fm[0] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[0], *meshSpecs[0], stateMgr, Albany::BUILD_RESID_FM,Teuchos::null); if(meshSpecs[0]->nsNames.size() > 0) { // Build a nodeset evaluator if nodesets are present constructDirichletEvaluators(*meshSpecs[0]); } if(meshSpecs[0]->ssNames.size() > 0) { // Build a sideset evaluator if sidesets are present constructNeumannEvaluators(meshSpecs[0]); } }
void Albany::HMCProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct>> meshSpecs, Albany::StateManager& stateMgr) { /* Construct All Phalanx Evaluators */ TEUCHOS_TEST_FOR_EXCEPTION(meshSpecs.size()!=1,std::logic_error,"Problem supports one Material Block"); fm.resize(1); fm[0] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[0], *meshSpecs[0], stateMgr, BUILD_RESID_FM, Teuchos::null); if(meshSpecs[0]->nsNames.size() > 0) // Build a nodeset evaluator if nodesets are present constructDirichletEvaluators(*meshSpecs[0]); if(meshSpecs[0]->ssNames.size() > 0) // Build a sideset evaluator if sidesets are present constructNeumannEvaluators(meshSpecs[0]); #ifdef ALBANY_ATO if( params->isType<Teuchos::RCP<ATO::Topology>>("Topology") ) setupTopOpt(meshSpecs,stateMgr); #endif }
void Albany::Helmholtz2DProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { /* Construct All Phalanx Evaluators */ TEUCHOS_TEST_FOR_EXCEPTION(meshSpecs.size()!=1,std::logic_error,"Problem supports one Material Block"); fm.resize(1); fm[0] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[0], *meshSpecs[0], stateMgr, BUILD_RESID_FM, Teuchos::null); constructDirichletEvaluators(*meshSpecs[0]); }
void Albany::PeridigmProblem:: buildProblem( Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct>> meshSpecs, Albany::StateManager& stateMgr) { /* Construct All Phalanx Evaluators */ int physSets = meshSpecs.size(); fm.resize(physSets); for (int ps=0; ps<physSets; ps++) { fm[ps] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[ps], *meshSpecs[ps], stateMgr, BUILD_RESID_FM, Teuchos::null); } constructDirichletEvaluators(*meshSpecs[0]); }
void FELIX::Hydrology::buildProblem (Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { TEUCHOS_TEST_FOR_EXCEPTION (meshSpecs.size()!=1,std::logic_error,"Problem supports one Material Block"); fm.resize(1); fm[0] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); // Build evaluators buildEvaluators(*fm[0], *meshSpecs[0], stateMgr, Albany::BUILD_RESID_FM, Teuchos::null); // Build bc evaluators if(meshSpecs[0]->nsNames.size() > 0) // Build a nodeset evaluator if nodesets are present constructDirichletEvaluators(*meshSpecs[0]); if(meshSpecs[0]->ssNames.size() > 0) // Build a sideset evaluator if sidesets are present constructNeumannEvaluators(meshSpecs[0]); }
void Albany::ProjectionProblem::buildProblem( ArrayRCP<RCP<Albany::MeshSpecsStruct> > mesh_specs, Albany::StateManager & state_manager) { // Construct all Phalanx evaluators TEUCHOS_TEST_FOR_EXCEPTION( mesh_specs.size() != 1, std::logic_error, "Problem supports one Material Block"); fm.resize(1); fm[0] = rcp(new PHX::FieldManager<AlbanyTraits>); buildEvaluators( *fm[0], *mesh_specs[0], state_manager, BUILD_RESID_FM, Teuchos::null); constructDirichletEvaluators(*mesh_specs[0]); }
//------------------------------------------------------------------------------ void Albany::ConcurrentMultiscaleProblem:: buildProblem(Teuchos::ArrayRCP<Teuchos::RCP<Albany::MeshSpecsStruct> > meshSpecs, Albany::StateManager& stateMgr) { // Construct All Phalanx Evaluators int physSets = meshSpecs.size(); std::cout << "Num MeshSpecs: " << physSets << std::endl; fm.resize(physSets); std::cout << "Calling ConcurrentMultiscaleProblem::buildEvaluators" << std::endl; for (int ps=0; ps < physSets; ++ps) { std::string eb_name = meshSpecs[ps]->ebName; if ( material_db_->isElementBlockParam(eb_name,"Lagrange Multiplier Block") ) { lm_overlap_map_.insert(std::make_pair(eb_name, material_db_->getElementBlockParam<bool>(eb_name,"Lagrange Multiplier Block") ) ); } if ( material_db_->isElementBlockParam(eb_name,"Coarse Overlap Block") ) { coarse_overlap_map_.insert(std::make_pair(eb_name, material_db_->getElementBlockParam<bool>(eb_name,"Coarse Overlap Block") ) ); } if ( material_db_->isElementBlockParam(eb_name,"Fine Overlap Block") ) { fine_overlap_map_.insert(std::make_pair(eb_name, material_db_->getElementBlockParam<bool>(eb_name,"Fine Overlap Block") ) ); } fm[ps] = Teuchos::rcp(new PHX::FieldManager<PHAL::AlbanyTraits>); buildEvaluators(*fm[ps], *meshSpecs[ps], stateMgr, BUILD_RESID_FM, Teuchos::null); } constructDirichletEvaluators(*meshSpecs[0]); }