Skip to content

Commit

Permalink
Merge Pull Request #10198 from rppawlo/Trilinos/panzer-fix-dof-manager
Browse files Browse the repository at this point in the history
Automatically Merged using Trilinos Pull Request AutoTester
PR Title: Panzer fix dof manager
PR Author: rppawlo
  • Loading branch information
trilinos-autotester authored Feb 18, 2022
2 parents 9be5241 + 90cc55d commit c9e29d5
Show file tree
Hide file tree
Showing 8 changed files with 141 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ int main(int argc,char * argv[])
// finish building mesh, set required field variables and mesh bulk data
////////////////////////////////////////////////////////////////////////

for (const auto pb : physicsBlocks) {
for (const auto& pb : physicsBlocks) {
const std::vector<StrPureBasisPair> & blockFields = pb->getProvidedDOFs();

// insert all fields into a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@ int main(int argc,char * argv[])
// finish building mesh, set required field variables and mesh bulk data
////////////////////////////////////////////////////////////////////////

for (const auto pb : physicsBlocks) {
for (const auto& pb : physicsBlocks) {
const std::vector<StrPureBasisPair> & blockFields = pb->getProvidedDOFs();

// insert all fields into a set
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ int main(int argc,char * argv[])
// finish building mesh, set required field variables and mesh bulk data
////////////////////////////////////////////////////////////////////////

for (const auto pb : physicsBlocks) {
for (const auto& pb : physicsBlocks) {
const std::vector<StrPureBasisPair> & blockFields = pb->getProvidedDOFs();

// insert all fields into a set
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<ParameterList name="Drekar">

<ParameterList name="Mesh">

<Parameter name="Source" type="string" value="Inline Mesh" />

<ParameterList name="Exodus File">
Expand Down Expand Up @@ -38,6 +38,9 @@
<ParameterList name="T3_TEMPERATURE">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
<ParameterList name="T4_TEMPERATURE">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>
</ParameterList>

Expand All @@ -61,7 +64,7 @@
</ParameterList>

<ParameterList name="Assembly">
<Parameter name="Field Order" type="string" value="blocked: T0_TEMPERATURE - T1_TEMPERATURE T2_TEMPERATURE - T3_TEMPERATURE"/>
<Parameter name="Field Order" type="string" value="blocked: T0_TEMPERATURE - T1_TEMPERATURE T2_TEMPERATURE - T3_TEMPERATURE - T4_TEMPERATURE"/>
<Parameter name="Workset Size" type="int" value="1"/>
<Parameter name="Use Tpetra" type="bool" value="true"/>
</ParameterList>
Expand All @@ -71,37 +74,45 @@
<ParameterList name="solid">

<ParameterList name="EQ 0">
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="1"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model"/>
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="1"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model"/>
<Parameter name="Prefix" type="string" value="T0_"/>
</ParameterList>
<ParameterList name="EQ 1">
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="1"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 1"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 1"/>
<Parameter name="Prefix" type="string" value="T1_"/>
</ParameterList>
<ParameterList name="EQ 2">
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="1"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 2"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 2"/>
<Parameter name="Prefix" type="string" value="T2_"/>
</ParameterList>
<ParameterList name="EQ 3">
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="2"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 3"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 3"/>
<Parameter name="Prefix" type="string" value="T3_"/>
</ParameterList>
<ParameterList name="EQ 4">
<Parameter name="Type" type="string" value="Energy"/>
<Parameter name="Basis Type" type="string" value="HGrad"/>
<Parameter name="Basis Order" type="int" value="2"/>
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Model ID" type="string" value="fluid model 4"/>
<Parameter name="Prefix" type="string" value="T4_"/>
</ParameterList>

</ParameterList>

Expand Down Expand Up @@ -177,6 +188,20 @@

</ParameterList>

<ParameterList name="fluid model 4">

<ParameterList name="SOURCE_T4_TEMPERATURE">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
<ParameterList name="T4_DENSITY">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
<ParameterList name="T4_HEAT_CAPACITY">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>

</ParameterList>

</ParameterList>

<ParameterList name="User Data">
Expand All @@ -186,7 +211,7 @@
</ParameterList>

<ParameterList name="IP Coordinates">
<Parameter name="Integration Order" type="int" value="2"/>
<Parameter name="Integration Order" type="int" value="2"/>
</ParameterList>


Expand All @@ -195,93 +220,115 @@
<ParameterList name="Boundary Conditions">

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T0_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T0_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T0_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T0_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T1_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T1_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T1_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T1_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T2_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T2_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T2_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T2_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T3_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T3_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T3_TEMPERATURE"/>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T3_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>


<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="top"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T4_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="0.0"/>
</ParameterList>
</ParameterList>

<ParameterList>
<Parameter name="Type" type="string" value="Dirichlet"/>
<Parameter name="Sideset ID" type="string" value="bottom"/>
<Parameter name="Element Block ID" type="string" value="eblock-0_0"/>
<Parameter name="Equation Set Name" type="string" value="T4_TEMPERATURE"/>
<Parameter name="Strategy" type="string" value="Constant"/>
<ParameterList name="Data">
<Parameter name="Value" type="double" value="1.0"/>
</ParameterList>
</ParameterList>

</ParameterList>

<ParameterList name="Output">
Expand All @@ -290,7 +337,7 @@

<ParameterList name="Options">
<Parameter name="Write Volume Assembly Graphs" type="bool" value="false"/>
<Parameter name="Volume Assembly Graph Prefix" type="string" value="energy-ss-blocked-tp"/>
<Parameter name="Volume Assembly Graph Prefix" type="string" value="energy-ss-blocked-tp"/>
</ParameterList>

<ParameterList name="Active Parameters">
Expand Down Expand Up @@ -343,7 +390,7 @@
<Parameter name="Linear Solver Type" type="string" value="Belos"/>
<ParameterList name="Linear Solver Types">
<ParameterList name="AztecOO">
<ParameterList name="Forward Solve">
<ParameterList name="Forward Solve">
<ParameterList name="AztecOO Settings">
<Parameter name="Aztec Solver" type="string" value="GMRES"/>
<Parameter name="Convergence Test" type="string" value="r0"/>
Expand Down Expand Up @@ -461,4 +508,3 @@


</ParameterList>

Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ evaluateFields(typename TRAITS::EvalData workset)
for (std::size_t fieldIndex = 0; fieldIndex < gatherFields_.size(); fieldIndex++) {
// workset LIDs only change for different sub blocks
if (productVectorBlockIndex_[fieldIndex] != currentWorksetLIDSubBlock) {
fieldGlobalIndexers_[fieldIndex]->getElementLIDs(localCellIds,worksetLIDs_);
const std::string blockId = this->wda(workset).block_id;
const int num_dofs = fieldGlobalIndexers_[fieldIndex]->getElementBlockGIDCount(blockId);
fieldGlobalIndexers_[fieldIndex]->getElementLIDs(localCellIds,worksetLIDs_,num_dofs);
currentWorksetLIDSubBlock = productVectorBlockIndex_[fieldIndex];
}

Expand Down Expand Up @@ -545,7 +547,9 @@ evaluateFields(typename TRAITS::EvalData workset)
// workset LIDs only change if in different sub blocks
if (productVectorBlockIndex_[fieldIndex] != currentWorksetLIDSubBlock) {
const auto& blockIndexer = globalIndexer_->getFieldDOFManagers()[productVectorBlockIndex_[fieldIndex]];
blockIndexer->getElementLIDs(localCellIds,worksetLIDs_);
const std::string blockId = this->wda(workset).block_id;
const int num_dofs = globalIndexer_->getFieldDOFManagers()[productVectorBlockIndex_[fieldIndex]]->getElementBlockGIDCount(blockId);
blockIndexer->getElementLIDs(localCellIds,worksetLIDs_,num_dofs);
currentWorksetLIDSubBlock = productVectorBlockIndex_[fieldIndex];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ postRegistrationSetup(typename TRAITS::SetupData d,
// we need the LIDs for all sub-blocks, not just the single
// sub-block for the field residual scatter.
int elementBlockGIDCount = 0;
for (const auto blockDOFMgr : globalIndexer_->getFieldDOFManagers())
for (const auto& blockDOFMgr : globalIndexer_->getFieldDOFManagers())
elementBlockGIDCount += blockDOFMgr->getElementBlockGIDCount(blockId);

worksetLIDs_ = PHX::View<LO**>("ScatterDirichletResidual_BlockedTpetra(Jacobian):worksetLIDs",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ postRegistrationSetup(typename TRAITS::SetupData d,
// we need the LIDs for all sub-blocks, not just the single
// sub-block for the field residual scatter.
int elementBlockGIDCount = 0;
for (const auto blockDOFMgr : globalIndexer_->getFieldDOFManagers())
for (const auto& blockDOFMgr : globalIndexer_->getFieldDOFManagers())
elementBlockGIDCount += blockDOFMgr->getElementBlockGIDCount(blockId);

worksetLIDs_ = Kokkos::View<LO**, Kokkos::LayoutRight, PHX::Device>(
Expand Down
Loading

0 comments on commit c9e29d5

Please sign in to comment.