Base class for outputting Ray data in a mesh format, where EDGE2 elems represent the individual Ray segments. More...
#include <RayTracingMeshOutput.h>
Public Types | |
typedef DataFileName | DataFileParameterType |
Public Member Functions | |
RayTracingMeshOutput (const InputParameters ¶meters) | |
virtual std::string | filename () override |
void | output () override |
void | setFileBase (const std::string &file_base) |
void | setFileNumber (unsigned int num) |
unsigned int | getFileNumber () |
virtual Real | time () override |
virtual Real | timeOld () |
virtual Real | dt () |
virtual Real | dtOld () |
virtual int | timeStep () |
const unsigned int & | interval () const |
const MultiMooseEnum & | executeOn () const |
bool | isAdvanced () |
virtual const OutputOnWarehouse & | advancedExecuteOn () const |
void | allowOutput (bool state) |
virtual void | outputStep (const ExecFlagType &type) |
const std::set< Real > & | getSyncTimes () |
virtual bool | supportsMaterialPropertyOutput () const |
virtual bool | enabled () const |
std::shared_ptr< MooseObject > | getSharedPtr () |
std::shared_ptr< const MooseObject > | getSharedPtr () const |
MooseApp & | getMooseApp () const |
const std::string & | type () const |
virtual const std::string & | name () const |
std::string | typeAndName () const |
std::string | errorPrefix (const std::string &error_type) const |
void | callMooseError (std::string msg, const bool with_prefix) const |
MooseObjectParameterName | uniqueParameterName (const std::string ¶meter_name) const |
const InputParameters & | parameters () const |
MooseObjectName | uniqueName () const |
const T & | getParam (const std::string &name) const |
std::vector< std::pair< T1, T2 > > | getParam (const std::string ¶m1, const std::string ¶m2) const |
const T * | queryParam (const std::string &name) const |
const T & | getRenamedParam (const std::string &old_name, const std::string &new_name) const |
T | getCheckedPointerParam (const std::string &name, const std::string &error_string="") const |
bool | isParamValid (const std::string &name) const |
bool | isParamSetByUser (const std::string &nm) const |
void | paramError (const std::string ¶m, Args... args) const |
void | paramWarning (const std::string ¶m, Args... args) const |
void | paramInfo (const std::string ¶m, Args... args) const |
void | connectControllableParams (const std::string ¶meter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const |
void | mooseError (Args &&... args) const |
void | mooseErrorNonPrefixed (Args &&... args) const |
void | mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const |
void | mooseWarning (Args &&... args) const |
void | mooseWarningNonPrefixed (Args &&... args) const |
void | mooseDeprecated (Args &&... args) const |
void | mooseInfo (Args &&... args) const |
std::string | getDataFileName (const std::string ¶m) const |
std::string | getDataFileNameByName (const std::string &relative_path) const |
std::string | getDataFilePath (const std::string &relative_path) const |
virtual void | meshChanged () |
virtual void | initialSetup () |
virtual void | timestepSetup () |
virtual void | jacobianSetup () |
virtual void | residualSetup () |
virtual void | subdomainSetup () |
virtual void | customSetup (const ExecFlagType &) |
const ExecFlagEnum & | getExecuteOnEnum () const |
const Function & | getFunction (const std::string &name) const |
const Function & | getFunctionByName (const FunctionName &name) const |
bool | hasFunction (const std::string ¶m_name) const |
bool | hasFunctionByName (const FunctionName &name) const |
bool | isDefaultPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessor (const std::string ¶m_name, const unsigned int index=0) const |
bool | hasPostprocessorByName (const PostprocessorName &name) const |
std::size_t | coupledPostprocessors (const std::string ¶m_name) const |
const PostprocessorName & | getPostprocessorName (const std::string ¶m_name, const unsigned int index=0) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name, bool needs_broadcast) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const VectorPostprocessorValue & | getVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValue (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOld (const std::string ¶m_name, const std::string &vector_name) const |
const ScatterVectorPostprocessorValue & | getScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name, const std::string &vector_name) const |
bool | hasVectorPostprocessor (const std::string ¶m_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const |
bool | hasVectorPostprocessorByName (const VectorPostprocessorName &name) const |
const VectorPostprocessorName & | getVectorPostprocessorName (const std::string ¶m_name) const |
PerfGraph & | perfGraph () |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValue (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOld (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
const PostprocessorValue & | getPostprocessorValueOlder (const std::string ¶m_name, const unsigned int index=0) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
virtual const PostprocessorValue & | getPostprocessorValueByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOldByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
const PostprocessorValue & | getPostprocessorValueOlderByName (const PostprocessorName &name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributed (const std::string ¶m_name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
bool | isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const |
const Parallel::Communicator & | comm () const |
processor_id_type | n_processors () const |
processor_id_type | processor_id () const |
UserObjectName | getUserObjectName (const std::string ¶m_name) const |
const T & | getUserObject (const std::string ¶m_name, bool is_dependency=true) const |
const T & | getUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBase (const std::string ¶m_name, bool is_dependency=true) const |
const UserObject & | getUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObject (const std::string ¶m_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
bool | hasUserObjectByName (const UserObjectName &object_name) const |
Static Public Member Functions | |
static InputParameters | validParams () |
static ExecFlagEnum | getDefaultExecFlagEnum () |
static void | addDeprecatedInputParameters (InputParameters ¶ms) |
Public Attributes | |
const ConsoleStream | _console |
Protected Member Functions | |
virtual void | outputMesh ()=0 |
Output the mesh - to be overridden. More... | |
virtual bool | shouldOutput () override |
bool | checkFilename () |
virtual void | setFileBaseInternal (const std::string &file_base) |
bool | inNonlinearTimeWindow () |
bool | inLinearTimeWindow () |
virtual Real | getOutputTime () |
virtual bool | onInterval () |
void | setWallTimeIntervalFromCommandLineParam () |
T & | declareRestartableData (const std::string &data_name, Args &&... args) |
ManagedValue< T > | declareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
const T & | getRestartableData (const std::string &data_name) const |
T & | declareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args) |
T & | declareRecoverableData (const std::string &data_name, Args &&... args) |
T & | declareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args) |
T & | declareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args) |
std::string | restartableName (const std::string &data_name) const |
virtual void | addPostprocessorDependencyHelper (const PostprocessorName &) const |
virtual void | addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const |
const ReporterName & | getReporterName (const std::string ¶m_name) const |
virtual void | addReporterDependencyHelper (const ReporterName &) |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level) const |
PerfID | registerTimedSection (const std::string §ion_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const |
std::string | timedSectionName (const std::string §ion_name) const |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, const std::size_t time_index=0) |
const T & | getReporterValue (const std::string ¶m_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0) |
const T & | getReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0) |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValue (const std::string ¶m_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
bool | hasReporterValueByName (const ReporterName &reporter_name) const |
virtual void | addUserObjectDependencyHelper (const UserObject &) const |
Static Protected Member Functions | |
static PetscErrorCode | petscNonlinearOutput (SNES, PetscInt its, PetscReal fnorm, void *void_ptr) |
static PetscErrorCode | petscLinearOutput (KSP, PetscInt its, PetscReal fnorm, void *void_ptr) |
Private Member Functions | |
void | buildBoundingBoxes () |
Build the inflated neighbor bounding boxes stored in _inflated_neighbor_bboxes for the purposes of identifying processors that may contain nodes that we need to decide on ownership for. More... | |
void | buildIDMap () |
Builds a map for each Ray to starting element and node ID for the EDGE2 mesh that will represent said Ray. More... | |
void | buildSegmentMesh () |
Build the mesh that contains the ray tracing segments. More... | |
void | setupEquationSystem () |
Setup the equation system that stores the segment-wise field data. More... | |
void | fillFields () |
Fill the Ray field data. More... | |
dof_id_type | neededNodes (const TraceData &trace_data) const |
Gets the number of nodes needed to represent a given trace. More... | |
void | startingIDs (const TraceData &trace_data, dof_id_type &start_node_id, dof_id_type &start_elem_id) const |
Gets the starting node and element IDs in the EDGE2 mesh for a given trace. More... | |
Private Attributes | |
unsigned int | _ray_id_var |
The variable index in _sys for the Ray's ID (if any) More... | |
unsigned int | _intersections_var |
The variable index in _sys for the intersection ID (if any) More... | |
unsigned int | _pid_var |
The variable index in _sys for the Ray's processor id (if any) More... | |
unsigned int | _processor_crossings_var |
The variable index in _sys for the Ray's processor crossings (if any) More... | |
unsigned int | _trajectory_changes_var |
The variable index in _sys for the Ray's trajectory changes (if any) More... | |
std::vector< std::pair< RayDataIndex, unsigned int > > | _data_vars |
The ray data index -> variable index map. More... | |
std::vector< std::pair< RayDataIndex, unsigned int > > | _aux_data_vars |
The ray aux data index -> variable index map. More... | |
BoundingBox | _bbox |
The bounding box for this processor. More... | |
std::vector< BoundingBox > | _inflated_bboxes |
The inflated bounding boxes for all processors. More... | |
std::vector< std::pair< processor_id_type, BoundingBox > > | _inflated_neighbor_bboxes |
Inflated bounding boxes that are neighboring to this processor (pid : bbox for each entry) More... | |
std::unordered_map< RayID, std::pair< dof_id_type, dof_id_type > > | _ray_starting_id_map |
The map from RayID to the starting element and node ID of the mesh element for said Ray. More... | |
dof_id_type | _max_node_id |
The max node ID for the ray tracing mesh for creating unique elem IDs. More... | |
bool | _segmented_rays |
Whether or not we have segmented rays. More... | |
Base class for outputting Ray data in a mesh format, where EDGE2 elems represent the individual Ray segments.
Definition at line 33 of file RayTracingMeshOutput.h.
RayTracingMeshOutput::RayTracingMeshOutput | ( | const InputParameters & | parameters | ) |
Definition at line 56 of file RayTracingMeshOutput.C.
|
private |
Build the inflated neighbor bounding boxes stored in _inflated_neighbor_bboxes for the purposes of identifying processors that may contain nodes that we need to decide on ownership for.
Definition at line 653 of file RayTracingMeshOutput.C.
Referenced by output().
|
private |
Builds a map for each Ray to starting element and node ID for the EDGE2 mesh that will represent said Ray.
Definition at line 150 of file RayTracingMeshOutput.C.
Referenced by buildSegmentMesh().
|
private |
Build the mesh that contains the ray tracing segments.
Definition at line 266 of file RayTracingMeshOutput.C.
Referenced by output().
|
overridevirtual |
Reimplemented from FileOutput.
Definition at line 102 of file RayTracingMeshOutput.C.
Referenced by RayTracingExodus::outputMesh(), and RayTracingNemesis::outputMesh().
|
private |
Fill the Ray field data.
Definition at line 574 of file RayTracingMeshOutput.C.
Referenced by output().
|
private |
Gets the number of nodes needed to represent a given trace.
Definition at line 706 of file RayTracingMeshOutput.C.
Referenced by buildIDMap().
|
overridevirtual |
Implements FileOutput.
Definition at line 118 of file RayTracingMeshOutput.C.
Referenced by filename().
|
protectedpure virtual |
Output the mesh - to be overridden.
Implemented in RayTracingExodus, and RayTracingNemesis.
Referenced by output().
|
private |
Setup the equation system that stores the segment-wise field data.
Definition at line 488 of file RayTracingMeshOutput.C.
Referenced by output().
|
private |
Gets the starting node and element IDs in the EDGE2 mesh for a given trace.
Definition at line 688 of file RayTracingMeshOutput.C.
Referenced by buildSegmentMesh(), and fillFields().
|
static |
Definition at line 30 of file RayTracingMeshOutput.C.
Referenced by RayTracingExodus::validParams(), and RayTracingNemesis::validParams().
|
private |
The ray aux data index -> variable index map.
Definition at line 119 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
private |
The bounding box for this processor.
Definition at line 122 of file RayTracingMeshOutput.h.
Referenced by buildBoundingBoxes().
|
private |
The ray data index -> variable index map.
Definition at line 117 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
protected |
The EquationSystems.
Definition at line 67 of file RayTracingMeshOutput.h.
Referenced by output(), RayTracingNemesis::outputMesh(), RayTracingExodus::outputMesh(), and setupEquationSystem().
|
private |
The inflated bounding boxes for all processors.
Definition at line 124 of file RayTracingMeshOutput.h.
Referenced by buildBoundingBoxes().
|
private |
Inflated bounding boxes that are neighboring to this processor (pid : bbox for each entry)
Definition at line 126 of file RayTracingMeshOutput.h.
Referenced by buildBoundingBoxes(), and buildSegmentMesh().
|
private |
The variable index in _sys for the intersection ID (if any)
Definition at line 109 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
private |
The max node ID for the ray tracing mesh for creating unique elem IDs.
Definition at line 131 of file RayTracingMeshOutput.h.
Referenced by buildIDMap(), and buildSegmentMesh().
|
protected |
Whether or not to output the Ray's aux data.
Definition at line 60 of file RayTracingMeshOutput.h.
Referenced by RayTracingMeshOutput(), and setupEquationSystem().
|
protected |
Specific Ray Aux data to output.
Definition at line 62 of file RayTracingMeshOutput.h.
Referenced by RayTracingMeshOutput(), and setupEquationSystem().
|
protected |
Whether or not to output all of the Ray's data.
Definition at line 54 of file RayTracingMeshOutput.h.
Referenced by RayTracingMeshOutput(), and setupEquationSystem().
|
protected |
Specific Ray data to output.
Definition at line 56 of file RayTracingMeshOutput.h.
Referenced by RayTracingMeshOutput(), and setupEquationSystem().
|
protected |
Whether or not to output the Ray's data in a nodal, linear sense.
Definition at line 58 of file RayTracingMeshOutput.h.
Referenced by fillFields(), RayTracingNemesis::outputMesh(), RayTracingExodus::outputMesh(), RayTracingMeshOutput(), and setupEquationSystem().
|
private |
The variable index in _sys for the Ray's processor id (if any)
Definition at line 111 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
private |
The variable index in _sys for the Ray's processor crossings (if any)
Definition at line 113 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
private |
The variable index in _sys for the Ray's ID (if any)
Definition at line 107 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().
|
private |
The map from RayID to the starting element and node ID of the mesh element for said Ray.
Definition at line 129 of file RayTracingMeshOutput.h.
Referenced by buildIDMap(), and startingIDs().
|
protected |
The mesh that contains the segments.
Definition at line 65 of file RayTracingMeshOutput.h.
Referenced by buildSegmentMesh(), fillFields(), output(), RayTracingExodus::outputMesh(), and RayTracingNemesis::outputMesh().
|
private |
Whether or not we have segmented rays.
Definition at line 133 of file RayTracingMeshOutput.h.
Referenced by buildSegmentMesh(), and setupEquationSystem().
|
protected |
The RayTracingStudy.
Definition at line 51 of file RayTracingMeshOutput.h.
Referenced by buildIDMap(), buildSegmentMesh(), fillFields(), neededNodes(), output(), RayTracingExodus::outputMesh(), RayTracingNemesis::outputMesh(), RayTracingMeshOutput(), setupEquationSystem(), and startingIDs().
|
protected |
The system that stores the field data.
Definition at line 69 of file RayTracingMeshOutput.h.
Referenced by fillFields(), output(), and setupEquationSystem().
|
private |
The variable index in _sys for the Ray's trajectory changes (if any)
Definition at line 115 of file RayTracingMeshOutput.h.
Referenced by fillFields(), and setupEquationSystem().