2#ifndef included_AMP_SubchannelHelpers
3#define included_AMP_SubchannelHelpers
5#include "AMP/mesh/Mesh.h"
6#include "AMP/mesh/MeshElement.h"
7#include "AMP/operators/subchannel/SubchannelOperatorParameters.h"
8#include "AMP/operators/subchannel/SubchannelPhysicsModel.h"
9#include "AMP/vectors/Vector.h"
19std::shared_ptr<const SubchannelOperatorParameters>
20 convert( std::shared_ptr<const OperatorParameters> );
36std::shared_ptr<AMP::Mesh::Mesh>
58 const std::vector<double> &clad_x,
59 const std::vector<double> &clad_y,
60 const std::vector<double> &clad_d,
61 std::vector<double> &x,
62 std::vector<double> &y,
63 std::vector<double> &area,
64 std::vector<double> &diam,
65 std::vector<double> &rod_diameter,
66 std::vector<double> &channel_fraction );
81 std::shared_ptr<AMP::Mesh::Mesh> clad,
82 std::vector<double> &x,
83 std::vector<double> &y,
84 std::vector<double> &diam );
111 std::vector<double> z,
133 std::vector<AMP::Mesh::MeshElementID> face_ids,
138 std::shared_ptr<SubchannelPhysicsModel> subchannelPhysicsModel,
154 std::shared_ptr<AMP::Mesh::Mesh> subchannel,
Provides C++ wrapper around MPI routines.
std::shared_ptr< Vector > shared_ptr
Shorthand for shared pointer to Vector.
std::shared_ptr< const Vector > const_shared_ptr
std::shared_ptr< AMP::Mesh::Mesh > subsetForSubchannel(std::shared_ptr< AMP::Mesh::Mesh > subchannel, size_t i, size_t j)
Function to subset the subchannel mesh for a particular subchannel.
void getSubchannelProperties(std::shared_ptr< AMP::Mesh::Mesh > subchannel, const std::vector< double > &clad_x, const std::vector< double > &clad_y, const std::vector< double > &clad_d, std::vector< double > &x, std::vector< double > &y, std::vector< double > &area, std::vector< double > &diam, std::vector< double > &rod_diameter, std::vector< double > &channel_fraction)
Function to get some basic properties for each subchannel based on the mesh.
size_t getNumberOfSubchannels(std::shared_ptr< AMP::Mesh::Mesh > subchannel)
Function to get the number of subchannels from the mesh.
std::vector< double > getHeatFluxGeneration(std::string shape, std::vector< double > z, double diam, double Q_tot)
Function to get the heat flux of the rod.
std::vector< double > getHeatFluxClad(std::vector< double > z, std::vector< AMP::Mesh::MeshElementID > face_ids, double channelDiam, double reynolds, double prandtl, double fraction, std::shared_ptr< SubchannelPhysicsModel > subchannelPhysicsModel, AMP::LinearAlgebra::Vector::const_shared_ptr flow, AMP::LinearAlgebra::Vector::const_shared_ptr clad_temp)
Function to get the heat flux of the rod.
std::shared_ptr< const SubchannelOperatorParameters > convert(std::shared_ptr< const OperatorParameters >)
std::vector< double > getHeatFluxGenerationWithDiscretizationError(std::string shape, std::vector< double > z, double diam, double Q_tot)
Function to get the heat flux of the rod; uses a midpoint average, leading to discretization error.
AMP::LinearAlgebra::Vector::shared_ptr getCladHydraulicDiameter(std::shared_ptr< AMP::Mesh::Mesh > clad, std::shared_ptr< AMP::Mesh::Mesh > subchannel, AMP::AMP_MPI comm)
Function to get the hydraulic diameter on the clad surface.
void getCladProperties(AMP::AMP_MPI comm, std::shared_ptr< AMP::Mesh::Mesh > clad, std::vector< double > &x, std::vector< double > &y, std::vector< double > &diam)
Function to get the coordinates of the clad.