Cardinal
Classes | Namespaces | Functions | Variables
NekInterface.h File Reference
#include "CardinalEnums.h"
#include "MooseTypes.h"
#include "NekBoundaryCoupling.h"
#include "NekVolumeCoupling.h"
#include "inipp.hpp"
#include "nekrs.hpp"
#include "bcMap.hpp"
#include "udf.hpp"
#include "mesh.h"
#include "libmesh/point.h"
#include <string>
#include <vector>
Include dependency graph for NekInterface.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  nekrs::usrwrkIndices
 
struct  nekrs::characteristicScales
 Characteristic scales assumed in nekRS if using a non-dimensional solution. More...
 

Namespaces

 nekrs
 Cardinal-specific nekRS API.
 

Functions

void nekrs::initializeHostMeshParameters ()
 Allocate memory for the host mesh parameters. More...
 
void nekrs::updateHostMeshParameters ()
 Update the mesh parameters on host. More...
 
dfloat * nekrs::getSgeo ()
 
dfloat * nekrs::getVgeo ()
 
void nekrs::setAbsoluteTol (double tol)
 
void nekrs::setRelativeTol (double tol)
 
void nekrs::setNekSetupTime (const double &time)
 
double nekrs::getNekSetupTime ()
 
void nekrs::setStartTime (const double &start)
 
bool nekrs::isInitialized ()
 
void nekrs::write_usrwrk_field_file (const int &slot, const std::string &prefix, const dfloat &time, const int &step, const bool &write_coords)
 
void nekrs::write_field_file (const std::string &prefix, const dfloat time, const int &step)
 
void nekrs::buildOnly (int buildOnly)
 
int nekrs::buildOnly ()
 
void nekrs::interpolateVolumeHex3D (const double *I, double *x, int N, double *Ix, int M)
 
bool nekrs::hasCHT ()
 
bool nekrs::hasMovingMesh ()
 
bool nekrs::hasVariableDt ()
 
bool nekrs::hasBlendingSolver ()
 
bool nekrs::hasUserMeshSolver ()
 
bool nekrs::endControlElapsedTime ()
 
bool nekrs::endControlTime ()
 
bool nekrs::endControlNumSteps ()
 
int nekrs::scalarFieldOffset ()
 
int nekrs::velocityFieldOffset ()
 
mesh_t * nekrs::entireMesh ()
 
mesh_t * nekrs::flowMesh ()
 
mesh_t * nekrs::temperatureMesh ()
 
mesh_t * nekrs::getMesh (const nek_mesh::NekMeshEnum pp_mesh)
 
int nekrs::commRank ()
 
int nekrs::commSize ()
 
bool nekrs::hasTemperatureVariable ()
 
bool nekrs::hasTemperatureSolve ()
 
bool nekrs::hasScalarVariable (int scalarId)
 
bool nekrs::hasHeatSourceKernel ()
 
bool nekrs::scratchAvailable ()
 
void nekrs::initializeScratch (const unsigned int &n_slots)
 
void nekrs::freeScratch ()
 Free the scratch space. More...
 
double nekrs::viscosity ()
 
double nekrs::Pr ()
 
void nekrs::copyDeformationToDevice ()
 Copy the deformation from host to device. More...
 
template<typename T >
void nekrs::allgatherv (const std::vector< int > &base_counts, const T *input, T *output, const int multiplier=1)
 
void nekrs::displacementAndCounts (const std::vector< int > &base_counts, int *counts, int *displacement, const int multiplier)
 
void nekrs::interpolationMatrix (double *I, int starting_points, int ending_points)
 
void nekrs::interpolateSurfaceFaceHex3D (double *scratch, const double *I, double *x, int N, double *Ix, int M)
 
Point nekrs::centroidFace (int local_elem_id, int local_face_id)
 
Point nekrs::centroid (int local_elem_id)
 
Point nekrs::gllPoint (int local_elem_id, int local_node_id)
 
Point nekrs::gllPointFace (int local_elem_id, int local_face_id, int local_node_id)
 
std::vector< double > nekrs::usrwrkSideIntegral (const unsigned int &slot, const std::vector< int > &boundary, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::usrwrkVolumeIntegral (const unsigned int &slot, const nek_mesh::NekMeshEnum pp_mesh)
 
void nekrs::scaleUsrwrk (const unsigned int &slot, const dfloat &value)
 
bool nekrs::normalizeFluxBySideset (const NekBoundaryCoupling &nek_boundary_coupling, const std::vector< int > &boundary, const std::vector< double > &moose_integral, std::vector< double > &nek_integral, double &normalized_nek_integral)
 
bool nekrs::normalizeFlux (const NekBoundaryCoupling &nek_boundary_coupling, const std::vector< int > &boundary, const double moose_integral, double nek_integral, double &normalized_nek_integral)
 
double nekrs::area (const std::vector< int > &boundary_id, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::sideIntegral (const std::vector< int > &boundary_id, const field::NekFieldEnum &integrand, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::volume (const nek_mesh::NekMeshEnum pp_mesh)
 
void nekrs::dimensionalizeVolume (double &integral)
 
void nekrs::dimensionalizeArea (double &integral)
 
void nekrs::dimensionalizeVolumeIntegral (const field::NekFieldEnum &integrand, const Real &volume, double &integral)
 
void nekrs::dimensionalizeSideIntegral (const field::NekFieldEnum &integrand, const Real &area, double &integral)
 
void nekrs::dimensionalizeSideIntegral (const field::NekFieldEnum &integrand, const std::vector< int > &boundary_id, double &integral, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::volumeIntegral (const field::NekFieldEnum &integrand, const double &volume, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::massFlowrate (const std::vector< int > &boundary_id, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::sideMassFluxWeightedIntegral (const std::vector< int > &boundary_id, const field::NekFieldEnum &integrand, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::pressureSurfaceForce (const std::vector< int > &boundary_id, const Point &direction, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::heatFluxIntegral (const std::vector< int > &boundary_id, const nek_mesh::NekMeshEnum pp_mesh)
 
void nekrs::limitTemperature (const double *min_T, const double *max_T)
 
void nekrs::gradient (const int offset, const double *f, double *grad_f, const nek_mesh::NekMeshEnum pp_mesh)
 
double nekrs::volumeExtremeValue (const field::NekFieldEnum &field, const nek_mesh::NekMeshEnum pp_mesh, const bool max)
 
double nekrs::sideExtremeValue (const std::vector< int > &boundary_id, const field::NekFieldEnum &field, const nek_mesh::NekMeshEnum pp_mesh, const bool max)
 
int nekrs::Nfaces ()
 
bool nekrs::isHeatFluxBoundary (const int boundary)
 
bool nekrs::isMovingMeshBoundary (const int boundary)
 
bool nekrs::isTemperatureBoundary (const int boundary)
 
const std::string nekrs::temperatureBoundaryType (const int boundary)
 
int nekrs::polynomialOrder ()
 
int nekrs::Nelements ()
 
int nekrs::dim ()
 
int nekrs::NfaceVertices ()
 Number of vertices required to define an element face Vertices refer to the points required to place the "corners" of an element face, and not the quadrature points. For instance, for hexahedral elements, the number of vertices per face is 4 regardless of the polynomial order. More...
 
int nekrs::NboundaryFaces ()
 
int nekrs::NboundaryID ()
 
bool nekrs::validBoundaryIDs (const std::vector< int > &boundary_id, int &first_invalid_id, int &n_boundaries)
 
void nekrs::storeBoundaryCoupling (const std::vector< int > &boundary_id, int &N)
 
double nekrs::scalar01 (const int id)
 Get the scalar01 solution at given GLL index. More...
 
double nekrs::scalar02 (const int id)
 Get the scalar02 solution at given GLL index. More...
 
double nekrs::scalar03 (const int id)
 Get the scalar03 solution at given GLL index. More...
 
double nekrs::temperature (const int id)
 Get the temperature solution at given GLL index. More...
 
double nekrs::pressure (const int id)
 
double nekrs::unity (const int id)
 
double nekrs::velocity_x (const int id)
 
double nekrs::velocity_y (const int id)
 
double nekrs::velocity_z (const int id)
 
double nekrs::velocity (const int id)
 
void nekrs::flux (const int id, const dfloat value)
 
void nekrs::heat_source (const int id, const dfloat value)
 
void nekrs::x_displacement (const int id, const dfloat value)
 
void nekrs::y_displacement (const int id, const dfloat value)
 
void nekrs::z_displacement (const int id, const dfloat value)
 
void nekrs::initializeDimensionalScales (const double U_ref, const double T_ref, const double dT_ref, const double L_ref, const double rho_ref, const double Cp_ref)
 
void nekrs::dimensionalize (const field::NekFieldEnum &field, double &value)
 Dimensionalize a field by multiplying the nondimensional form by the reference. More...
 
double nekrs::referenceFlux ()
 
double nekrs::referenceSource ()
 
double nekrs::referenceLength ()
 
double nekrs::referenceArea ()
 
double nekrs::referenceVolume ()
 
template<typename T >
MPI_Datatype nekrs::resolveType ()
 

Variables

double(*)(int) nekrs::solutionPointer (const field::NekFieldEnum &field)