https://mooseframework.inl.gov
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Attributes | List of all members
SBMSurfaceMeshBuilder Class Reference

#include <SBMSurfaceMeshBuilder.h>

Inheritance diagram for SBMSurfaceMeshBuilder:
[legend]

Public Types

typedef DataFileName DataFileParameterType
 

Public Member Functions

 SBMSurfaceMeshBuilder (const InputParameters &parameters)
 
virtual void initialSetup () override
 
virtual void initialize () override
 
virtual void execute () override
 
virtual void finalize () override
 
KDTreegetKDTree () const
 Returns a mutable reference because KDTree::neighborSearch is non-const (nanoflann's knnSearch threads internal scratch state through the call). More...
 
bool hasKDTree () const
 Whether this builder has a KDTree available. More...
 
const std::vector< std::unique_ptr< SBMBndElementBase > > & getBoundaryElements () const
 Get the SBM boundary elements. More...
 
const std::vector< Point > & getCentroids () const
 Get the centroids of the boundary elements. More...
 
bool checkWatertightness () const
 Checks whether the boundary mesh is "closed" – i.e. More...
 
virtual Real spatialValue (const Point &) const
 
virtual const std::vector< Point > spatialPoints () const
 
void setPrimaryThreadCopy (UserObject *primary)
 
UserObjectprimaryThreadCopy ()
 
SubProblemgetSubProblem () const
 
bool shouldDuplicateInitialExecution () const
 
void gatherSum (T &value)
 
void gatherMax (T &value)
 
void gatherMin (T &value)
 
void gatherProxyValueMax (T1 &proxy, T2 &value)
 
void gatherProxyValueMin (T1 &proxy, T2 &value)
 
std::set< UserObjectName > getDependObjects () const
 
const std::set< std::string > & getRequestedItems () override
 
const std::set< std::string > & getSuppliedItems () override
 
unsigned int systemNumber () const
 
virtual bool needThreadedCopy () const
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (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 &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const TgetUserObject (const std::string &param_name, bool is_dependency=true) const
 
const TgetUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const std::vector< MooseVariableScalar *> & getCoupledMooseScalarVars ()
 
const std::set< TagID > & getScalarVariableCoupleableVectorTags () const
 
const std::set< TagID > & getScalarVariableCoupleableMatrixTags () const
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialProperty (const std::string &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > & getADMaterialProperty (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOld (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const MaterialProperty< T > & getMaterialPropertyOlder (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const MaterialProperty< T > & getMaterialPropertyByName (const MaterialPropertyName &name, const unsigned int state=0)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const ADMaterialProperty< T > & getADMaterialPropertyByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOldByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name, MaterialData &material_data)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
const MaterialProperty< T > & getMaterialPropertyOlderByName (const MaterialPropertyName &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyByName (const std::string &prop_name_in)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOldByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlderByName (const std::string &prop_name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialProperty (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOld (const std::string &name)
 
Moose::Kokkos::MaterialProperty< T, dimension > getKokkosMaterialPropertyOlder (const std::string &name)
 
std::pair< const MaterialProperty< T > *, std::set< SubdomainID > > getBlockMaterialProperty (const MaterialPropertyName &name)
 
std::pair< Moose::Kokkos::MaterialProperty< T, dimension >, std::set< SubdomainID > > getKokkosBlockMaterialProperty (const MaterialPropertyName &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialProperty ()
 
const GenericMaterialProperty< T, is_ad > & getGenericZeroMaterialPropertyByName (const std::string &prop_name)
 
const MaterialProperty< T > & getZeroMaterialProperty (Ts... args)
 
std::set< SubdomainIDgetMaterialPropertyBlocks (const std::string &name)
 
std::vector< SubdomainName > getMaterialPropertyBlockNames (const std::string &name)
 
std::set< BoundaryIDgetMaterialPropertyBoundaryIDs (const std::string &name)
 
std::vector< BoundaryName > getMaterialPropertyBoundaryNames (const std::string &name)
 
void checkBlockAndBoundaryCompatibility (std::shared_ptr< MaterialBase > discrete)
 
std::unordered_map< SubdomainID, std::vector< MaterialBase *> > buildRequiredMaterials (bool allow_stateful=true)
 
void statefulPropertiesAllowed (bool)
 
virtual bool getMaterialPropertyCalled () const
 
virtual const std::unordered_set< unsigned int > & getMatPropDependencies () const
 
virtual void resolveOptionalProperties ()
 
const GenericMaterialProperty< T, is_ad > & getPossiblyConstantGenericMaterialPropertyByName (const MaterialPropertyName &prop_name, MaterialData &material_data, const unsigned int state)
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
virtual void threadJoin (const UserObject &) override
 
virtual void threadJoin (const UserObject &) override
 
virtual void subdomainSetup () override
 
virtual void subdomainSetup () override
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_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
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const GenericOptionalMaterialProperty< T, is_ad > & getGenericOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalMaterialProperty< T > & getOptionalMaterialProperty (const std::string &name, const unsigned int state=0)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalADMaterialProperty< T > & getOptionalADMaterialProperty (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOld (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
const OptionalMaterialProperty< T > & getOptionalMaterialPropertyOlder (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterial (const std::string &name)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
MaterialBasegetMaterialByName (const std::string &name, bool no_warn=false)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialProperty (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialProperty (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasADMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialProperty (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasKokkosMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialProperty (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
bool hasGenericMaterialPropertyByName (const std::string &name)
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const TgetKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const TgetKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_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 &param_name) const
 
TgetSampler (const std::string &name)
 
SamplergetSampler (const std::string &name)
 
TgetSamplerByName (const SamplerName &name)
 
SamplergetSamplerByName (const SamplerName &name)
 
virtual void meshChanged ()
 
virtual void meshDisplaced ()
 
PerfGraphperfGraph ()
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistribution (const std::string &name) const
 
const TgetDistribution (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const DistributiongetDistributionByName (const DistributionName &name) const
 
const TgetDistributionByName (const std::string &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
static void sort (typename std::vector< T > &vector)
 
static void sortDFS (typename std::vector< T > &vector)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header, NameFunc &&name_func)
 
static void cyclicDependencyError (CyclicDependencyException< T2 > &e, const std::string &header)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 
static constexpr PropertyValue::id_type default_property_id
 
static constexpr PropertyValue::id_type zero_property_id
 
static constexpr auto SYSTEM
 
static constexpr auto NAME
 

Protected Member Functions

virtual void addPostprocessorDependencyHelper (const PostprocessorName &name) const override
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &name) const override
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &uo) const override
 
void addReporterDependencyHelper (const ReporterName &reporter_name) override
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
const ReporterContextBasegetReporterContextBaseByName (const ReporterName &reporter_name) const
 
const ReporterNamegetReporterName (const std::string &param_name) const
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
const TgetMeshProperty (const std::string &data_name, const std::string &prefix)
 
const TgetMeshProperty (const std::string &data_name)
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name, const std::string &prefix) const
 
bool hasMeshProperty (const std::string &data_name) const
 
bool hasMeshProperty (const std::string &data_name) const
 
std::string meshPropertyName (const std::string &data_name) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level) const
 
PerfID registerTimedSection (const std::string &section_name, const unsigned int level, const std::string &live_message, const bool print_dots=true) const
 
std::string timedSectionName (const std::string &section_name) const
 
bool isCoupledScalar (const std::string &var_name, unsigned int i=0) const
 
unsigned int coupledScalarComponents (const std::string &var_name) const
 
unsigned int coupledScalar (const std::string &var_name, unsigned int comp=0) const
 
libMesh::Order coupledScalarOrder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< is_ad > & coupledGenericScalarValue (const std::string &var_name, unsigned int comp=0) const
 
const GenericVariableValue< false > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const GenericVariableValue< true > & coupledGenericScalarValue (const std::string &var_name, const unsigned int comp) const
 
const VariableValuecoupledVectorTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledMatrixTagScalarValue (const std::string &var_name, TagID tag, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarValueOlder (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const ADVariableValueadCoupledScalarDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDot (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotOld (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDu (const std::string &var_name, unsigned int comp=0) const
 
const VariableValuecoupledScalarDotDotDu (const std::string &var_name, unsigned int comp=0) const
 
const MooseVariableScalargetScalarVar (const std::string &var_name, unsigned int comp) const
 
virtual void checkMaterialProperty (const std::string &name, const unsigned int state)
 
virtual void getKokkosMaterialPropertyHook (const std::string &, const unsigned int)
 
void markMatPropRequested (const std::string &)
 
MaterialPropertyName getMaterialPropertyName (const std::string &name) const
 
void checkExecutionStage ()
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, const std::size_t time_index=0)
 
const TgetReporterValue (const std::string &param_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, const std::size_t time_index=0)
 
const TgetReporterValueByName (const ReporterName &reporter_name, ReporterMode mode, const std::size_t time_index=0)
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_name) const
 
bool hasReporterValue (const std::string &param_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
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< T, is_ad > * defaultGenericMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const MaterialProperty< T > * defaultMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 
const ADMaterialProperty< T > * defaultADMaterialProperty (const std::string &name)
 

Static Protected Member Functions

static std::string meshPropertyName (const std::string &data_name, const std::string &prefix)
 

Protected Attributes

std::unique_ptr< MeshBase > _mesh
 Holds the mesh to ensure boundary element pointers remain valid. More...
 
std::unique_ptr< KDTree_kd_tree
 The KDTree is constructed using the centroids of the elements in the boundary mesh. More...
 
std::vector< std::unique_ptr< SBMBndElementBase > > _boundary_elements
 The boundary elements are stored in a vector of unique pointers to SBMBndElementBase. More...
 
std::vector< Point > _centroids
 The centroids of the elements in the boundary mesh are stored in a vector of Points. The sequence is the same as in _boundary_elements. More...
 
const int _leaf_max_size
 Configures KDTree leaf node size for performance tuning. More...
 
const std::string _bnd_mesh_name
 The name of a mesh saved via MeshGenerator save_mesh_as parameter. More...
 
const bool _check_watertightness
 The flag to check the watertightness of the mesh. More...
 
const bool _build_kd_tree
 whether we want to build a kd-tree or not More...
 
const Moose::CoordinateSystemType_coord_sys
 
const THREAD_ID _tid
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
Assembly_assembly
 
const bool _duplicate_initial_execution
 
std::set< std::string > _depend_uo
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
FEProblemBase_mdi_feproblem
 
MooseApp_pg_moose_app
 
const std::string _prefix
 
FEProblemBase_sc_fe_problem
 
const THREAD_ID _sc_tid
 
const Real_real_zero
 
const VariableValue_scalar_zero
 
const Point & _point_zero
 
const InputParameters_mi_params
 
const std::string _mi_name
 
const MooseObjectName _mi_moose_object_name
 
FEProblemBase_mi_feproblem
 
SubProblem_mi_subproblem
 
const THREAD_ID _mi_tid
 
const bool _is_kokkos_object
 
const Moose::MaterialDataType _material_data_type
 
MaterialData_material_data
 
bool _stateful_allowed
 
bool _get_material_property_called
 
std::vector< std::unique_ptr< PropertyValue > > _default_properties
 
std::unordered_set< unsigned int_material_property_dependencies
 
const MaterialPropertyName _get_suffix
 
const bool _use_interpolated_state
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real_t
 
const Real_t_old
 
int_t_step
 
Real_dt
 
Real_dt_old
 
bool _is_transient
 
const Parallel::Communicator & _communicator
 

Static Protected Attributes

static const std::string _interpolated_old
 
static const std::string _interpolated_older
 

Private Attributes

const unsigned int _dim_embedding_mesh
 The dimension of the embedding mesh (2D or 3D). More...
 

Detailed Description

Definition at line 17 of file SBMSurfaceMeshBuilder.h.

Constructor & Destructor Documentation

◆ SBMSurfaceMeshBuilder()

SBMSurfaceMeshBuilder::SBMSurfaceMeshBuilder ( const InputParameters parameters)

Definition at line 56 of file SBMSurfaceMeshBuilder.C.

58  _leaf_max_size(getParam<int>("leaf_max_size")),
59  _bnd_mesh_name(getParam<std::string>("surface_mesh")),
60  _check_watertightness(getParam<bool>("check_watertightness")),
61  _build_kd_tree(getParam<bool>("build_kd_tree")),
63 {
64 }
const InputParameters & parameters() const
const std::string _bnd_mesh_name
The name of a mesh saved via MeshGenerator save_mesh_as parameter.
FEProblemBase & _fe_problem
virtual unsigned int dimension() const
const int _leaf_max_size
Configures KDTree leaf node size for performance tuning.
const unsigned int _dim_embedding_mesh
The dimension of the embedding mesh (2D or 3D).
const bool _build_kd_tree
whether we want to build a kd-tree or not
virtual MooseMesh & mesh() override
GeneralUserObject(const InputParameters &parameters)
const bool _check_watertightness
The flag to check the watertightness of the mesh.

Member Function Documentation

◆ checkWatertightness()

bool SBMSurfaceMeshBuilder::checkWatertightness ( ) const

Checks whether the boundary mesh is "closed" – i.e.

has no open edges or faces.

The implementation walks every side of every boundary element and returns false as soon as it finds a side with no neighbor. On a manifold surface mesh this is equivalent to watertightness; non-manifold input (e.g. T-junctions, three faces sharing an edge) is not validated here because the SBM workflow expects boundary meshes extracted from manifold sidesets.

Returns
true if every side has a neighbor; false otherwise.

Definition at line 126 of file SBMSurfaceMeshBuilder.C.

Referenced by initialSetup().

127 {
128  return SBMUtils::checkWatertightnessFromRawElems(std::vector<const Elem *>(
129  _mesh->active_element_ptr_range().begin(), _mesh->active_element_ptr_range().end()));
130 }
bool checkWatertightnessFromRawElems(const std::vector< const Elem *> &bd_elements)
Definition: SBMUtils.C:22
std::unique_ptr< MeshBase > _mesh
Holds the mesh to ensure boundary element pointers remain valid.

◆ execute()

virtual void SBMSurfaceMeshBuilder::execute ( )
inlineoverridevirtual

Implements GeneralUserObject.

Definition at line 25 of file SBMSurfaceMeshBuilder.h.

25 {}

◆ finalize()

virtual void SBMSurfaceMeshBuilder::finalize ( )
inlineoverridevirtual

Implements GeneralUserObject.

Definition at line 26 of file SBMSurfaceMeshBuilder.h.

26 {}

◆ getBoundaryElements()

const std::vector< std::unique_ptr< SBMBndElementBase > > & SBMSurfaceMeshBuilder::getBoundaryElements ( ) const

Get the SBM boundary elements.

Definition at line 140 of file SBMSurfaceMeshBuilder.C.

141 {
142  return _boundary_elements;
143 }
std::vector< std::unique_ptr< SBMBndElementBase > > _boundary_elements
The boundary elements are stored in a vector of unique pointers to SBMBndElementBase.

◆ getCentroids()

const std::vector< Point > & SBMSurfaceMeshBuilder::getCentroids ( ) const

Get the centroids of the boundary elements.

Definition at line 146 of file SBMSurfaceMeshBuilder.C.

Referenced by ShortestDistanceToSurfaceTestAux::initialSetup().

147 {
148  return _centroids;
149 }
std::vector< Point > _centroids
The centroids of the elements in the boundary mesh are stored in a vector of Points. The sequence is the same as in _boundary_elements.

◆ getKDTree()

KDTree & SBMSurfaceMeshBuilder::getKDTree ( ) const

Returns a mutable reference because KDTree::neighborSearch is non-const (nanoflann's knnSearch threads internal scratch state through the call).

The operation is logically read-only and knnSearch is re-entrant, so the same tree can be safely shared across threads without a const_cast at the call site. Callers must check hasKDTree() first; this is asserted in debug builds.

Definition at line 133 of file SBMSurfaceMeshBuilder.C.

134 {
135  mooseAssert(_kd_tree, "KDTree not built; callers must guard with hasKDTree() first.");
136  return *_kd_tree;
137 }
std::unique_ptr< KDTree > _kd_tree
The KDTree is constructed using the centroids of the elements in the boundary mesh.

◆ hasKDTree()

bool SBMSurfaceMeshBuilder::hasKDTree ( ) const
inline

Whether this builder has a KDTree available.

Consumers that require the tree should check this in initialSetup and mooseError with a friendly message naming both objects.

Definition at line 37 of file SBMSurfaceMeshBuilder.h.

37 { return _kd_tree != nullptr; }
std::unique_ptr< KDTree > _kd_tree
The KDTree is constructed using the centroids of the elements in the boundary mesh.

◆ initialize()

virtual void SBMSurfaceMeshBuilder::initialize ( )
inlineoverridevirtual

Implements GeneralUserObject.

Definition at line 24 of file SBMSurfaceMeshBuilder.h.

24 {}

◆ initialSetup()

void SBMSurfaceMeshBuilder::initialSetup ( )
overridevirtual

Reimplemented from GeneralUserObject.

Definition at line 67 of file SBMSurfaceMeshBuilder.C.

68 {
69  auto & mesh_generator_system = _app.getMeshGeneratorSystem();
70 
71  _mesh = mesh_generator_system.getSavedMesh(_bnd_mesh_name);
72 
73  const auto expected_dim_embedding_mesh = _mesh->mesh_dimension() + 1;
74 
75  if (!_mesh->is_replicated())
76  mooseError(
77  "The mesh is distributed. Please use a serial mesh for SBMSurfaceMeshBuilder, which is "
78  "important for our In-Out test later.");
79 
80  if (_dim_embedding_mesh != expected_dim_embedding_mesh)
81  mooseError("The original mesh dimension (",
83  ") does not match the expected mesh dimension (",
84  expected_dim_embedding_mesh,
85  ").");
86 
87  const std::size_t num_elems = _mesh->n_elem();
88 
89  _centroids.resize(num_elems);
90  _boundary_elements.resize(num_elems);
91 
92  int i = 0;
93  for (auto elem_it = _mesh->active_elements_begin(); elem_it != _mesh->active_elements_end();
94  ++elem_it)
95  {
96  const Elem * elem = *elem_it;
97 
98  const auto centroid = elem->vertex_average();
99  if (_build_kd_tree)
100  _centroids[i] = centroid;
101 
102  if (elem->type() == EDGE2)
103  _boundary_elements[i] = std::make_unique<SBMBndEdge2>(elem);
104  else if (elem->type() == TRI3)
105  _boundary_elements[i] = std::make_unique<SBMBndTri3>(elem);
106  else
107  mooseError("Unsupported element type in SBMSurfaceMeshBuilder::initialSetup()");
108 
109  ++i;
110  }
111 
112  if (_build_kd_tree)
113  _kd_tree = std::make_unique<KDTree>(_centroids, _leaf_max_size);
114 
116  {
117  bool watertight = checkWatertightness();
118  if (!watertight)
119  mooseInfo("The mesh is not watertight. It may not be suitable for In-Out tests.");
120  else
121  mooseInfo("The mesh is watertight. It is suitable for In-Out tests.");
122  }
123 }
void mooseInfo(Args &&... args) const
std::vector< Point > _centroids
The centroids of the elements in the boundary mesh are stored in a vector of Points. The sequence is the same as in _boundary_elements.
bool checkWatertightness() const
Checks whether the boundary mesh is "closed" – i.e.
TRI3
const std::string _bnd_mesh_name
The name of a mesh saved via MeshGenerator save_mesh_as parameter.
std::vector< std::unique_ptr< SBMBndElementBase > > _boundary_elements
The boundary elements are stored in a vector of unique pointers to SBMBndElementBase.
const int _leaf_max_size
Configures KDTree leaf node size for performance tuning.
const unsigned int _dim_embedding_mesh
The dimension of the embedding mesh (2D or 3D).
const bool _build_kd_tree
whether we want to build a kd-tree or not
EDGE2
std::unique_ptr< MeshBase > _mesh
Holds the mesh to ensure boundary element pointers remain valid.
void mooseError(Args &&... args) const
MeshGeneratorSystem & getMeshGeneratorSystem()
std::unique_ptr< KDTree > _kd_tree
The KDTree is constructed using the centroids of the elements in the boundary mesh.
const bool _check_watertightness
The flag to check the watertightness of the mesh.

◆ validParams()

InputParameters SBMSurfaceMeshBuilder::validParams ( )
static

Add a parameter for leaf_max_size for nanoflann

Checking watertightness is not mandatory, but it is a good practice to ensure the mesh is valid for In-Out test.

Add a parameter to control whether to build a kd-tree or not

Definition at line 20 of file SBMSurfaceMeshBuilder.C.

21 {
23  params.addClassDescription(
24  "Constructs a KDTree and boundary elements from a pre-existing surface mesh. "
25  "The surface mesh is specified in the Mesh block.");
26 
27  params.addRequiredParam<std::string>(
28  "surface_mesh",
29  "The name of the surface mesh saved via the MeshGenerator's `save_mesh_as` parameter.");
30 
32  params.addParam<int>(
33  "leaf_max_size",
34  10,
35  "Maximum number of points allowed in a leaf node of the KDTree. "
36  "Smaller values yield deeper trees with faster queries but slower build times; "
37  "larger values result in shallower trees with faster builds but slower queries. "
38  "Benchmarking is recommended to find an optimal tradeoff for your use case.");
39 
41  params.addParam<bool>(
42  "check_watertightness",
43  false,
44  "Check if the mesh is watertight. If false, the mesh may not be suitable for In-Out tests.");
45 
47  params.addParam<bool>(
48  "build_kd_tree",
49  true,
50  "Whether to build a kd-tree or not. If false, the kd-tree will not be built, "
51  "and the mesh will be used directly for queries.");
52 
53  return params;
54 }
static InputParameters validParams()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)

Member Data Documentation

◆ _bnd_mesh_name

const std::string SBMSurfaceMeshBuilder::_bnd_mesh_name
protected

The name of a mesh saved via MeshGenerator save_mesh_as parameter.

Definition at line 79 of file SBMSurfaceMeshBuilder.h.

Referenced by initialSetup().

◆ _boundary_elements

std::vector<std::unique_ptr<SBMBndElementBase> > SBMSurfaceMeshBuilder::_boundary_elements
protected

The boundary elements are stored in a vector of unique pointers to SBMBndElementBase.

Definition at line 70 of file SBMSurfaceMeshBuilder.h.

Referenced by getBoundaryElements(), and initialSetup().

◆ _build_kd_tree

const bool SBMSurfaceMeshBuilder::_build_kd_tree
protected

whether we want to build a kd-tree or not

Definition at line 85 of file SBMSurfaceMeshBuilder.h.

Referenced by initialSetup().

◆ _centroids

std::vector<Point> SBMSurfaceMeshBuilder::_centroids
protected

The centroids of the elements in the boundary mesh are stored in a vector of Points. The sequence is the same as in _boundary_elements.

Definition at line 73 of file SBMSurfaceMeshBuilder.h.

Referenced by getCentroids(), and initialSetup().

◆ _check_watertightness

const bool SBMSurfaceMeshBuilder::_check_watertightness
protected

The flag to check the watertightness of the mesh.

Definition at line 82 of file SBMSurfaceMeshBuilder.h.

Referenced by initialSetup().

◆ _dim_embedding_mesh

const unsigned int SBMSurfaceMeshBuilder::_dim_embedding_mesh
private

The dimension of the embedding mesh (2D or 3D).

Definition at line 89 of file SBMSurfaceMeshBuilder.h.

Referenced by initialSetup().

◆ _kd_tree

std::unique_ptr<KDTree> SBMSurfaceMeshBuilder::_kd_tree
protected

The KDTree is constructed using the centroids of the elements in the boundary mesh.

Definition at line 67 of file SBMSurfaceMeshBuilder.h.

Referenced by getKDTree(), hasKDTree(), and initialSetup().

◆ _leaf_max_size

const int SBMSurfaceMeshBuilder::_leaf_max_size
protected

Configures KDTree leaf node size for performance tuning.

Definition at line 76 of file SBMSurfaceMeshBuilder.h.

Referenced by initialSetup().

◆ _mesh

std::unique_ptr<MeshBase> SBMSurfaceMeshBuilder::_mesh
protected

Holds the mesh to ensure boundary element pointers remain valid.

Avoid extracting raw MeshBase* from a function returning std::unique_ptr<MeshBase>, as it can lead to dangling pointers. Use std::unique_ptr to manage ownership safely.

Definition at line 64 of file SBMSurfaceMeshBuilder.h.

Referenced by checkWatertightness(), and initialSetup().


The documentation for this class was generated from the following files: