waLBerla 7.3
Loading...
Searching...
No Matches
StabilityChecker.h File Reference

Detailed Description

#include "core/DataTypes.h"
#include "core/Set.h"
#include "core/cell/CellSet.h"
#include "core/debug/CheckFunctions.h"
#include "core/logging/Logging.h"
#include "core/math/Vector3.h"
#include "core/mpi/Reduce.h"
#include "core/uid/SUID.h"
#include "domain_decomposition/StructuredBlockStorage.h"
#include "field/EvaluationFilter.h"
#include "field/iterators/IteratorMacros.h"
#include "vtk/BlockCellDataWriter.h"
#include "vtk/DumpBlockStructureLevel.h"
#include "vtk/DumpBlockStructureProcess.h"
#include "vtk/VTKOutput.h"
#include <string_view>
#include <type_traits>

Classes

class  walberla::field::StabilityChecker< Field_T, Filter_T, CheckFunction_T >
 Class/functor for checking a running simulation for non-finite values in a specific field. More...
class  walberla::field::StabilityChecker< Field_T, Filter_T, CheckFunction_T >::VTKCellFilter
 This cell filter selects only those cells in which at least one non-finite value (= infinite or NaN) was detected. More...
class  walberla::field::StabilityChecker< Field_T, Filter_T, CheckFunction_T >::FValueVTKWriter
 For each value of a cell, either '0' or '1' is stored in the VTK file. More...
class  walberla::field::StabilityChecker< Field_T, Filter_T, CheckFunction_T >::LocalCoordVTKWriter
 For each cell, the corresponding block local cell coordinates are stored in the VTK file. More...
class  walberla::field::StabilityChecker< Field_T, Filter_T, CheckFunction_T >::GlobalCoordVTKWriter
 For each cell, the corresponding global cell coordinates are stored in the VTK file. More...

Namespaces

namespace  walberla
 Storage for detected contacts which can be used to perform actions for all contacts, e.g.
namespace  walberla::field
namespace  walberla::field::internal

Macros

#define WALBERLA_FIELD_MAKE_STABILITY_CHECKER_CONFIG_PARSER(config)
#define WALBERLA_FIELD_MAKE_STABILITY_CHECKER_SET_AND_RETURN()

Functions

const bool walberla::field::internal::stabilityCheckerVTKBinary (true)
const bool walberla::field::internal::stabilityCheckerVTKLittleEndian (true)
const bool walberla::field::internal::stabilityCheckerVTKMPIIO (true)
const bool walberla::field::internal::stabilityCheckerVTKForcePVTU (false)
template<typename T>
bool walberla::field::internal::stabilityCheckerIsFinite (const T &value)
template<>
bool walberla::field::internal::stabilityCheckerIsFinite (const Vector3< real_t > &value)
template<typename Field_T>
shared_ptr< StabilityChecker< Field_T > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const uint_t checkFrequency, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const uint_t checkFrequency, CheckFunction_T checkFunction, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename FlagField_T>
shared_ptr< StabilityChecker< Field_T, FlagFieldEvaluationFilter< FlagField_T > > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &cellsToEvaluate, const uint_t checkFrequency, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename FlagField_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T, FlagFieldEvaluationFilter< FlagField_T > > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &cellsToEvaluate, const uint_t checkFrequency, CheckFunction_T checkFunction, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename Filter_T>
shared_ptr< StabilityChecker< Field_T, Filter_T > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const Filter_T &filter, const uint_t checkFrequency, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename Filter_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T, Filter_T > > walberla::field::makeStabilityChecker (const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const Filter_T &filter, const uint_t checkFrequency, CheckFunction_T checkFunction, const bool outputToStream=true, const bool outputVTK=true, const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
void walberla::field::internal::stabilityCheckerConfigParser (const Config::BlockHandle &parentBlockHandle, const std::string &configBlockName, uint_t &defaultCheckFrequency, bool &defaultOutputToStream, bool &defaultOutputVTK, std::string &defaultVTKBaseFolder, std::string &defaultVTKExecutionFolder, std::string &defaultVTKIdentifier, bool &defaultVTKBinary, bool &defaultVTKLittleEndian, bool &defaultVTKMPIIO, bool &defaultVTKForcePVTU)
void walberla::field::internal::stabilityCheckerConfigParser (const shared_ptr< Config > &config, const std::string &configBlockName, uint_t &defaultCheckFrequency, bool &defaultOutputToStream, bool &defaultOutputVTK, std::string &defaultVTKBaseFolder, std::string &defaultVTKExecutionFolder, std::string &defaultVTKIdentifier, bool &defaultVTKBinary, bool &defaultVTKLittleEndian, bool &defaultVTKMPIIO, bool &defaultVTKForcePVTU)
template<typename Field_T, typename Config_T>
shared_ptr< StabilityChecker< Field_T > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename Config_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, CheckFunction_T checkFunction, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename FlagField_T, typename Config_T>
shared_ptr< StabilityChecker< Field_T, FlagFieldEvaluationFilter< FlagField_T > > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &cellsToEvaluate, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename FlagField_T, typename Config_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T, FlagFieldEvaluationFilter< FlagField_T > > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const ConstBlockDataID &flagFieldId, const Set< FlagUID > &cellsToEvaluate, CheckFunction_T checkFunction, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename Filter_T, typename Config_T>
shared_ptr< StabilityChecker< Field_T, Filter_T > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const Filter_T &filter, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())
template<typename Field_T, typename Filter_T, typename Config_T, typename CheckFunction_T = std::function<bool ( const typename Field_T::value_type & value )>>
shared_ptr< StabilityChecker< Field_T, Filter_T > > walberla::field::makeStabilityChecker (const Config_T &config, const weak_ptr< StructuredBlockStorage > &blocks, const ConstBlockDataID &fieldId, const Filter_T &filter, CheckFunction_T checkFunction, const std::string &configBlockName=std::string(internal::stabilityCheckerConfigBlock), const Set< SUID > &requiredSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleSelectors=Set< SUID >::emptySet())

Variables

constexpr std::string_view walberla::field::internal::stabilityCheckerVTKBase = "vtk_out"
constexpr std::string_view walberla::field::internal::stabilityCheckerVTKFolder = "output"
constexpr std::string_view walberla::field::internal::stabilityCheckerVTKIdentifier = "error_field"
constexpr std::string_view walberla::field::internal::stabilityCheckerConfigBlock = "StabilityChecker"

Macro Definition Documentation

◆ WALBERLA_FIELD_MAKE_STABILITY_CHECKER_CONFIG_PARSER

#define WALBERLA_FIELD_MAKE_STABILITY_CHECKER_CONFIG_PARSER ( config)
Value:
uint_t defaultCheckFrequency = uint_t{0}; \
bool defaultOutputToStream = true; \
bool defaultOutputVTK = true; \
std::string defaultVTKBaseFolder = std::string(internal::stabilityCheckerVTKBase); \
std::string defaultVTKExecutionFolder = std::string(internal::stabilityCheckerVTKFolder); \
std::string defaultVTKIdentifier = std::string(internal::stabilityCheckerVTKIdentifier); \
bool defaultVTKBinary = internal::stabilityCheckerVTKBinary; \
bool defaultVTKLittleEndian = internal::stabilityCheckerVTKLittleEndian; \
bool defaultVTKMPIIO = internal::stabilityCheckerVTKMPIIO; \
bool defaultVTKForcePVTU = internal::stabilityCheckerVTKForcePVTU; \
internal::stabilityCheckerConfigParser( config, configBlockName, defaultCheckFrequency, defaultOutputToStream, defaultOutputVTK, \
defaultVTKBaseFolder, defaultVTKExecutionFolder, defaultVTKIdentifier, \
defaultVTKBinary, defaultVTKLittleEndian, defaultVTKMPIIO, defaultVTKForcePVTU );

◆ WALBERLA_FIELD_MAKE_STABILITY_CHECKER_SET_AND_RETURN

#define WALBERLA_FIELD_MAKE_STABILITY_CHECKER_SET_AND_RETURN ( )
Value:
checker->setVTKBaseFolder( defaultVTKBaseFolder ); \
checker->setVTKExecutionFolder( defaultVTKExecutionFolder ); \
checker->setVTKIdentifier( defaultVTKIdentifier ); \
checker->setVTKBinary( defaultVTKBinary ); \
checker->setVTKLittleEndian( defaultVTKLittleEndian ); \
checker->setVTKMPIIO( defaultVTKMPIIO ); \
checker->setVTKForcePVTU( defaultVTKForcePVTU ); \
return checker;