17 Teuchos::RCP<panzer::BasisIRLayout> layout =
lookupLayout(fieldName);
19 if(layout==Teuchos::null) {
22 TEUCHOS_TEST_FOR_EXCEPTION(layout==Teuchos::null,std::logic_error,
23 "panzer::FieldLayoutLibrary::lookupBasis: cannot find field with name \"" + fieldName +
"\"!\n"+ss.str());
26 return layout->getBasis();
34 std::map<std::string,Teuchos::RCP<const panzer::PureBasis> >::const_iterator itr;
36 bases.push_back(itr->second);
40 const Teuchos::RCP<panzer::BasisIRLayout> & layout)
48 typedef std::map<std::string,Teuchos::RCP<panzer::BasisIRLayout> > Map;
58 typedef std::map<std::string,Teuchos::RCP<panzer::BasisIRLayout> > Map;
61 std::string fieldName = itr->first;
62 Teuchos::RCP<BasisIRLayout> basis = itr->second;
64 os <<
"\"" << fieldName <<
"\"" <<
" {" << basis->name()
65 <<
"(dim=" << basis->dimension()
66 <<
",cells=" << basis->numCells()
67 <<
",points=" << basis->numPoints() <<
")} ";
73 typedef std::map<std::string,Teuchos::RCP<panzer::BasisIRLayout> > Map;
77 std::string fieldName = itr->first;
78 Teuchos::RCP<const PureBasis> basis = itr->second->getBasis();
80 bases.push_back(std::make_pair(fieldName,basis));
88 typedef std::map<std::string,Teuchos::RCP<panzer::PureBasis> > Map;
101 std::map<std::string,Teuchos::RCP<const panzer::PureBasis> >::const_iterator itr;
103 bases.push_back(itr->second);
107 const Teuchos::RCP<panzer::PureBasis> & basis)
115 typedef std::map<std::string,Teuchos::RCP<panzer::PureBasis> > Map;
117 Teuchos::RCP<FieldLayoutLibrary> layoutLibrary = Teuchos::rcp(
new FieldLayoutLibrary);
121 Teuchos::RCP<BasisIRLayout> layout = Teuchos::rcp(
new BasisIRLayout(itr->second,ir));
122 layoutLibrary->addFieldAndLayout(itr->first,layout);
125 return layoutLibrary;
130 typedef std::map<std::string,Teuchos::RCP<panzer::PureBasis> > Map;
133 std::string fieldName = itr->first;
134 Teuchos::RCP<PureBasis> basis = itr->second;
136 os <<
"\"" << fieldName <<
"\"" <<
" {" << basis->name()
137 <<
"(dim=" << basis->dimension()
138 <<
",cells=" << basis->numCells() <<
") ";
145 typedef std::map<std::string,Teuchos::RCP<panzer::PureBasis> > Map;
149 std::string fieldName = itr->first;
150 Teuchos::RCP<PureBasis> basis = itr->second;
152 bases.push_back(std::make_pair(fieldName,basis.getConst()));
Teuchos::RCP< panzer::BasisIRLayout > lookupLayout(const std::string &fieldName) const
Get the basis associated with a particular field.
virtual Teuchos::RCP< const panzer::PureBasis > lookupBasis(const std::string &fieldName) const
Get the basis associated with a particular field.
virtual void print(std::ostream &os) const
void addFieldAndLayout(const std::string &fieldName, const Teuchos::RCP< panzer::BasisIRLayout > &basis)
void uniqueBases(std::vector< Teuchos::RCP< const panzer::PureBasis > > &bases) const
Get vector of unique bases contained in this field library.
virtual void basisPairs(std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > &bases) const
Get vector of unique bases contained in this field library.
std::map< std::string, Teuchos::RCP< panzer::BasisIRLayout > > fieldToLayout_
Basic mapped storage.
std::map< std::string, Teuchos::RCP< const panzer::PureBasis > > basisNameToPointer_
std::map< std::string, Teuchos::RCP< panzer::PureBasis > > fieldToBasis_
Basic mapped storage.
std::map< std::string, Teuchos::RCP< const panzer::PureBasis > > basisNameToPointer_
virtual Teuchos::RCP< const panzer::PureBasis > lookupBasis(const std::string &fieldName) const
Get the basis associated with a particular field.
virtual void basisPairs(std::vector< std::pair< std::string, Teuchos::RCP< const panzer::PureBasis > > > &bases) const
Get vector of unique bases contained in this field library.
virtual void print(std::ostream &os) const
void addFieldAndBasis(const std::string &fieldName, const Teuchos::RCP< panzer::PureBasis > &basis)
Teuchos::RCP< const FieldLayoutLibrary > buildFieldLayoutLibrary(panzer::PointRule &ir) const
void uniqueBases(std::vector< Teuchos::RCP< const panzer::PureBasis > > &bases) const
Get vector of unique bases contained in this field library.