Skip to content

Commit

Permalink
Replace single stk::mesh::Part pointer with stk::mesh::PartVector. Is…
Browse files Browse the repository at this point in the history
…sue #1183

PartVectors allow for the specification of a field on a list of parts
instead of one part at a time. For some classes it was only possible
to pass a single part pointer for the field specification where a
part vector would be more flexible.

Started with register_nodal_fields:
from: register_nodal_fields(stk::mesh::Part* part)
to:   register_nodal_fields(const stk::mesh::PartVector &part_vec)

The stk::mesh::put_field_on_mesh function does not take a PartVector
so create a Selector form a PartVector:
  stk::mesh::Selector selector = stk::mesh::selectUnion(part_vec);
and use that instead. There were a couple of places where the
construction of a PartVector from a single Part pointer:
   PartVector(1,Part*)
was useful.

There were a lot of files changed, but the changes are trivial.
  • Loading branch information
overfelt committed May 9, 2023
1 parent bf95a95 commit df5a96c
Show file tree
Hide file tree
Showing 47 changed files with 310 additions and 243 deletions.
2 changes: 1 addition & 1 deletion include/AMSAlgDriver.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class AMSAlgDriver

AMSAlgDriver(Realm& realm);
virtual ~AMSAlgDriver() = default;
virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);
virtual void register_edge_fields(stk::mesh::Part* part);
void register_interior_algorithm(stk::mesh::Part* part);
void execute();
Expand Down
2 changes: 1 addition & 1 deletion include/Algorithm.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Algorithm
Algorithm(Realm& realm, stk::mesh::Part* part);

// provide part vector
Algorithm(Realm& realm, stk::mesh::PartVector& partVec);
Algorithm(Realm& realm, const stk::mesh::PartVector& partVec);

virtual ~Algorithm();

Expand Down
2 changes: 1 addition & 1 deletion include/ChienKEpsilonEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class ChienKEpsilonEquationSystem : public EquationSystem

virtual void initialize();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

virtual void register_wall_bc(
stk::mesh::Part* part,
Expand Down
9 changes: 9 additions & 0 deletions include/CopyFieldAlgorithm.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ namespace nalu {
class CopyFieldAlgorithm : public Algorithm
{
public:
CopyFieldAlgorithm(
Realm& realm,
const stk::mesh::PartVector &part_vec,
stk::mesh::FieldBase* fromField,
stk::mesh::FieldBase* toField,
const unsigned beginPos,
const unsigned endPos,
const stk::mesh::EntityRank entityRank);

CopyFieldAlgorithm(
Realm& realm,
stk::mesh::Part* part,
Expand Down
2 changes: 1 addition & 1 deletion include/EnthalpyEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class EnthalpyEquationSystem : public EquationSystem
const bool outputClippingDiag);
virtual ~EnthalpyEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/EquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class EquationSystem
virtual void populate_derived_quantities() {}

// base class with desired default no-op
virtual void register_nodal_fields(stk::mesh::Part* /* part */) {}
virtual void register_nodal_fields(const stk::mesh::PartVector& /* part */) {}

virtual void register_edge_fields(stk::mesh::Part* /* part */) {}

Expand Down
2 changes: 1 addition & 1 deletion include/GammaEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class GammaEquationSystem : public EquationSystem
GammaEquationSystem(EquationSystems& equationSystems);
virtual ~GammaEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
66 changes: 35 additions & 31 deletions include/LowMachEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,40 +56,42 @@ class LowMachEquationSystem : public EquationSystem
EquationSystems& equationSystems, const bool elementContinuityEqs);
virtual ~LowMachEquationSystem();

virtual void load(const YAML::Node&);
virtual void load(const YAML::Node&) override;

virtual void initialize();
virtual void initialize() override;

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void
register_nodal_fields(const stk::mesh::PartVector& part_vec) override;

virtual void register_edge_fields(stk::mesh::Part* part);
virtual void register_edge_fields(stk::mesh::Part* part) override;

virtual void
register_element_fields(stk::mesh::Part* part, const stk::topology& theTopo);
virtual void register_element_fields(
stk::mesh::Part* part, const stk::topology& theTopo) override;

virtual void register_open_bc(
stk::mesh::Part* part,
const stk::topology& partTopo,
const OpenBoundaryConditionData& openBCData);
const OpenBoundaryConditionData& openBCData) override;

virtual void register_surface_pp_algorithm(
const PostProcessingData& theData, stk::mesh::PartVector& partVector);
const PostProcessingData& theData,
stk::mesh::PartVector& partVector) override;

virtual void register_initial_condition_fcn(
stk::mesh::Part* part,
const std::map<std::string, std::string>& theNames,
const std::map<std::string, std::vector<double>>& theParams);
const std::map<std::string, std::vector<double>>& theParams) override;

virtual void pre_iter_work();
virtual void solve_and_update();
virtual void pre_iter_work() override;
virtual void solve_and_update() override;

virtual void predict_state();
virtual void predict_state() override;

void project_nodal_velocity();

void post_converged_work();
void post_converged_work() override;

virtual void post_iter_work();
virtual void post_iter_work() override;

const bool
elementContinuityEqs_; /* allow for mixed element/edge for continuity */
Expand Down Expand Up @@ -120,7 +122,8 @@ class MomentumEquationSystem : public EquationSystem
virtual void initial_work() override;
virtual void pre_timestep_work() override;

virtual void register_nodal_fields(stk::mesh::Part* part) override;
virtual void
register_nodal_fields(const stk::mesh::PartVector& part_vec) override;

virtual void register_edge_fields(stk::mesh::Part* part) override;

Expand Down Expand Up @@ -236,57 +239,58 @@ class ContinuityEquationSystem : public EquationSystem
EquationSystems& equationSystems, const bool elementContinuityEqs);
virtual ~ContinuityEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void
register_nodal_fields(const stk::mesh::PartVector& part_vec) override;

virtual void register_edge_fields(stk::mesh::Part* part);
virtual void register_edge_fields(stk::mesh::Part* part) override;

virtual void
register_element_fields(stk::mesh::Part* part, const stk::topology& theTopo);
virtual void register_element_fields(
stk::mesh::Part* part, const stk::topology& theTopo) override;

virtual void register_interior_algorithm(stk::mesh::Part* part);
virtual void register_interior_algorithm(stk::mesh::Part* part) override;

virtual void register_inflow_bc(
stk::mesh::Part* part,
const stk::topology& partTopo,
const InflowBoundaryConditionData& inflowBCData);
const InflowBoundaryConditionData& inflowBCData) override;

virtual void register_open_bc(
stk::mesh::Part* part,
const stk::topology& partTopo,
const OpenBoundaryConditionData& openBCData);
const OpenBoundaryConditionData& openBCData) override;

virtual void register_wall_bc(
stk::mesh::Part* part,
const stk::topology& theTopo,
const WallBoundaryConditionData& wallBCData);
const WallBoundaryConditionData& wallBCData) override;

virtual void register_symmetry_bc(
stk::mesh::Part* part,
const stk::topology& theTopo,
const SymmetryBoundaryConditionData& symmetryBCData);
const SymmetryBoundaryConditionData& symmetryBCData) override;

virtual void register_abltop_bc(
stk::mesh::Part* part,
const stk::topology& partTopo,
const ABLTopBoundaryConditionData& ablTopBCData);
const ABLTopBoundaryConditionData& ablTopBCData) override;

virtual void register_non_conformal_bc(
stk::mesh::Part* part, const stk::topology& theTopo);
stk::mesh::Part* part, const stk::topology& theTopo) override;

virtual void register_overset_bc();
virtual void register_overset_bc() override;

virtual void initialize();
virtual void reinitialize_linear_system();
virtual void initialize() override;
virtual void reinitialize_linear_system() override;

virtual void register_initial_condition_fcn(
stk::mesh::Part* part,
const std::map<std::string, std::string>& theNames,
const std::map<std::string, std::vector<double>>& theParams);
const std::map<std::string, std::vector<double>>& theParams) override;

virtual void manage_projected_nodal_gradient(EquationSystems& eqSystems);
virtual void compute_projected_nodal_gradient();

virtual void create_constraint_algorithm(stk::mesh::FieldBase*);
virtual void create_constraint_algorithm(stk::mesh::FieldBase*) override;

const bool elementContinuityEqs_;
const bool managePNG_;
Expand Down
2 changes: 1 addition & 1 deletion include/MatrixFreeHeatCondEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class MatrixFreeHeatCondEquationSystem final : public EquationSystem
virtual ~MatrixFreeHeatCondEquationSystem();

void initialize() final;
void register_nodal_fields(stk::mesh::Part* part) final;
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);
void register_interior_algorithm(stk::mesh::Part* part) final;
void register_wall_bc(
stk::mesh::Part* part,
Expand Down
8 changes: 4 additions & 4 deletions include/MatrixFreeLowMachEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class MatrixFreeLowMachEquationSystem final : public EquationSystem
MatrixFreeLowMachEquationSystem(EquationSystems&);
virtual ~MatrixFreeLowMachEquationSystem();
void initialize() final;
void register_nodal_fields(stk::mesh::Part*) final;
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);
void register_interior_algorithm(stk::mesh::Part*) final;
double provide_norm() const final;
double provide_scaled_norm() const final;
Expand Down Expand Up @@ -143,9 +143,9 @@ class MatrixFreeLowMachEquationSystem final : public EquationSystem
void sync_field_on_periodic_nodes(std::string name, int len) const;
void setup_and_compute_continuity_preconditioner();
void compute_courant_reynolds();
void check_part_is_valid(const stk::mesh::Part*);
void
register_copy_state_algorithm(std::string, int dim, stk::mesh::Part& part);
void check_part_is_valid(const stk::mesh::PartVector&);
void register_copy_state_algorithm(
std::string, int dim, const stk::mesh::PartVector&);

std::string get_muelu_xml_file_name();

Expand Down
2 changes: 1 addition & 1 deletion include/ProjectedNodalGradientEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class ProjectedNodalGradientEquationSystem : public EquationSystem

std::string get_name_given_bc(BoundaryConditionType BC);

void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/Realm.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ class Realm

void register_interior_algorithm(stk::mesh::Part* part);

void register_nodal_fields(stk::mesh::Part* part);
void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_wall_bc(stk::mesh::Part* part, const stk::topology& theTopo);

Expand Down
2 changes: 1 addition & 1 deletion include/ShearStressTransportEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class ShearStressTransportEquationSystem : public EquationSystem

virtual void initialize();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

virtual void register_wall_bc(
stk::mesh::Part* part,
Expand Down
2 changes: 1 addition & 1 deletion include/SpecificDissipationRateEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class SpecificDissipationRateEquationSystem : public EquationSystem
SpecificDissipationRateEquationSystem(EquationSystems& equationSystems);
virtual ~SpecificDissipationRateEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/TotalDissipationRateEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class TotalDissipationRateEquationSystem : public EquationSystem
TotalDissipationRateEquationSystem(EquationSystems& equationSystems);
virtual ~TotalDissipationRateEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/TurbKineticEnergyEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class TurbKineticEnergyEquationSystem : public EquationSystem

virtual ~TurbKineticEnergyEquationSystem() = default;

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_interior_algorithm(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/VolumeOfFluidEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class VolumeOfFluidEquationSystem : public EquationSystem
VolumeOfFluidEquationSystem(EquationSystems& equationSystems);
virtual ~VolumeOfFluidEquationSystem();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

virtual void register_edge_fields(stk::mesh::Part* part);

Expand Down
2 changes: 1 addition & 1 deletion include/WallDistEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class WallDistEquationSystem : public EquationSystem

void initial_work();

void register_nodal_fields(stk::mesh::Part*);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

void register_edge_fields(stk::mesh::Part*);

Expand Down
2 changes: 1 addition & 1 deletion include/WilcoxKOmegaEquationSystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class WilcoxKOmegaEquationSystem : public EquationSystem

virtual void initialize();

virtual void register_nodal_fields(stk::mesh::Part* part);
virtual void register_nodal_fields(const stk::mesh::PartVector& part_vec);

virtual void register_wall_bc(
stk::mesh::Part* part,
Expand Down
3 changes: 2 additions & 1 deletion include/aero/AeroContainer.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ class AeroContainer
void setup(double timeStep, std::shared_ptr<stk::mesh::BulkData> stkBulk);
void execute(double& timer);
void init(double currentTime, double restartFrequency);
void register_nodal_fields(stk::mesh::MetaData& meta, stk::mesh::Part* part);
void register_nodal_fields(
stk::mesh::MetaData& meta, const stk::mesh::PartVector& part_vec);
void update_displacements(const double currentTime);
void predict_model_time_step(const double /*currentTime*/);
void advance_model_time_step(const double /*currentTime*/);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class ThermalConductivityFromPrandtlPropAlgorithm : public Algorithm
public:
ThermalConductivityFromPrandtlPropAlgorithm(
Realm& realm,
stk::mesh::Part* part,
const stk::mesh::PartVector& part_vec,
ScalarFieldType* thermalCond,
ScalarFieldType* specificHeat,
ScalarFieldType* viscosity,
Expand Down
4 changes: 2 additions & 2 deletions include/utils/StkHelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,14 @@ get_node_field(
void register_scalar_nodal_field_on_part(
stk::mesh::MetaData& meta,
std::string name,
const stk::mesh::Part& selector,
const stk::mesh::Selector& selector,
int num_states,
double ic = 0);

void register_vector_nodal_field_on_part(
stk::mesh::MetaData& meta,
std::string name,
const stk::mesh::Part& selector,
const stk::mesh::Selector& selector,
int num_states,
std::array<double, 3> x = {{0, 0, 0}});

Expand Down
Loading

0 comments on commit df5a96c

Please sign in to comment.