This class interacts with a MooseApp through functional expansions. More...
#include <FXIntegralBaseUserObject.h>
Public Member Functions | |
FXIntegralBaseUserObject (const InputParameters ¶meters) | |
const FunctionSeries & | getFunctionSeries () const |
Return a reference to the underlying function series. More... | |
virtual Real | getValue () const final |
virtual void | finalize () final |
virtual void | initialize () final |
virtual Real | spatialValue (const Point &location) const final |
virtual void | threadJoin (const UserObject &sibling) final |
Real | operator[] (std::size_t index) const |
Get the value of the coefficient at the corresponding index. More... | |
const std::vector< std::size_t > & | getCharacteristics () const |
Get a reference to the characteristics array. More... | |
const std::vector< Real > & | getCoefficients () const |
Get a read-only reference to the vector of coefficients. More... | |
std::vector< Real > & | getCoefficients () |
Get a writeable reference to the vector of coefficients. More... | |
std::string | getCoefficientsTable () const |
Get a formatted string of the coefficients. More... | |
std::size_t | getSize () const |
Get the size, aka number of coefficients. More... | |
bool | isCompatibleWith (const MutableCoefficientsInterface &other) const |
Checks to see if another instance is compatible. More... | |
bool | isSizeEnforced () const |
Returns true if the size of the coefficient array is fixed and enforced. More... | |
void | enforceSize (bool enforce) |
Toggle whether the size of the coefficient array can be changed. More... | |
void | importCoefficients (const MutableCoefficientsInterface &other) |
Import the coefficients from another instance. More... | |
void | resize (std::size_t size, Real fill=0.0, bool fill_out_to_size=true) |
Resize the array, using the value for fill if the new size is larger. More... | |
void | setCharacteristics (const std::vector< std::size_t > &new_characteristics) |
Sets the characteristics array. More... | |
void | setCoefficients (const std::vector< Real > &new_coefficients) |
Set the coefficients using a copy operation. More... | |
void | setCoefficients (std::vector< Real > &&dropin_coefficients) |
Set the coefficients using a move operation (only works with temp objects) More... | |
Static Public Member Functions | |
static InputParameters | validParams () |
Protected Member Functions | |
virtual Real | computeIntegral () final |
virtual Point | getCentroid () const =0 |
Get the centroid of the evaluated unit. More... | |
virtual Real | getVolume () const =0 |
Get the volume of the evaluated unit. More... | |
virtual void | coefficientsChanged () |
Called when the coefficients have been changed. More... | |
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 |
Protected Attributes | |
std::vector< std::vector< Real > > | _coefficient_history |
History of the expansion coefficients for each solve. More... | |
std::vector< Real > | _coefficient_partials |
Current coefficient partial sums. More... | |
FunctionSeries & | _function_series |
Reference to the underlying function series. More... | |
const bool | _keep_history |
Keep the expansion coefficients after each solve. More... | |
const bool | _print_state |
Flag to prints the state of the zeroth instance in finalize() More... | |
const Real | _standardized_function_volume |
Volume of the standardized functional space of integration. More... | |
Real | _volume |
Moose volume of evaluation. More... | |
std::vector< std::size_t > & | _characteristics |
An array of integer characteristics that can be used to check compatibility. More... | |
std::vector< Real > & | _coefficients |
The coefficient array. More... | |
bool | _enforce_size |
Boolean that locks or allows resizing of the coefficient array. More... | |
const bool | _print_coefficients |
Boolean to flag if the coefficients should be printed when set. More... | |
MooseApp & | _restartable_app |
const std::string | _restartable_system_name |
const THREAD_ID | _restartable_tid |
const bool | _restartable_read_only |
This class interacts with a MooseApp through functional expansions.
It is templated to allow the inheritance of two dual classes that operate in a volume (FXVolumeUserObject) or on a boundary (FXBoundaryFluxUserObject and FXBoundaryValueUserObject)
It uses an instance of FunctionSeries to generate the orthonormal function series required to generate the functional expansion coefficients.
Definition at line 32 of file FXIntegralBaseUserObject.h.
FXIntegralBaseUserObject< IntegralBaseVariableUserObject >::FXIntegralBaseUserObject | ( | const InputParameters & | parameters | ) |
Definition at line 127 of file FXIntegralBaseUserObject.h.
|
inlineprotectedvirtualinherited |
Called when the coefficients have been changed.
Reimplemented in MutableCoefficientsFunctionInterface.
Definition at line 105 of file MutableCoefficientsInterface.h.
Referenced by MutableCoefficientsInterface::importCoefficients(), MutableCoefficientsInterface::resize(), and MutableCoefficientsInterface::setCoefficients().
|
finalprotectedvirtual |
Definition at line 148 of file FXIntegralBaseUserObject.h.
|
inherited |
Toggle whether the size of the coefficient array can be changed.
Definition at line 111 of file MutableCoefficientsInterface.C.
Referenced by FunctionSeries::FunctionSeries(), and MutableCoefficientsFunctionInterface::MutableCoefficientsFunctionInterface().
|
finalvirtual |
Definition at line 180 of file FXIntegralBaseUserObject.h.
|
protectedpure virtual |
Get the centroid of the evaluated unit.
Implemented in FXBoundaryBaseUserObject, and FXVolumeUserObject.
|
inherited |
Get a reference to the characteristics array.
Definition at line 51 of file MutableCoefficientsInterface.C.
|
inherited |
Get a read-only reference to the vector of coefficients.
Definition at line 57 of file MutableCoefficientsInterface.C.
|
inherited |
Get a writeable reference to the vector of coefficients.
Definition at line 63 of file MutableCoefficientsInterface.C.
|
inherited |
Get a formatted string of the coefficients.
Definition at line 69 of file MutableCoefficientsInterface.C.
const FunctionSeries & FXIntegralBaseUserObject< IntegralBaseVariableUserObject >::getFunctionSeries | ( | ) | const |
Return a reference to the underlying function series.
Definition at line 209 of file FXIntegralBaseUserObject.h.
|
inherited |
Get the size, aka number of coefficients.
Definition at line 80 of file MutableCoefficientsInterface.C.
Referenced by MutableCoefficientsInterface::isCompatibleWith(), and operator<<().
|
finalvirtual |
Definition at line 216 of file FXIntegralBaseUserObject.h.
|
protectedpure virtual |
Get the volume of the evaluated unit.
Implemented in FXBoundaryBaseUserObject, and FXVolumeUserObject.
|
inherited |
Import the coefficients from another instance.
Definition at line 117 of file MutableCoefficientsInterface.C.
Referenced by MultiAppFXTransfer::execute().
|
finalvirtual |
Definition at line 223 of file FXIntegralBaseUserObject.h.
|
inherited |
Checks to see if another instance is compatible.
Definition at line 86 of file MutableCoefficientsInterface.C.
Referenced by MultiAppFXTransfer::execute(), and MutableCoefficientsInterface::importCoefficients().
|
inherited |
Returns true if the size of the coefficient array is fixed and enforced.
Definition at line 105 of file MutableCoefficientsInterface.C.
|
inherited |
Get the value of the coefficient at the corresponding index.
Definition at line 45 of file MutableCoefficientsInterface.C.
|
inherited |
Resize the array, using the value for fill if the new size is larger.
Definition at line 131 of file MutableCoefficientsInterface.C.
Referenced by FunctionSeries::FunctionSeries().
|
inherited |
Sets the characteristics array.
Definition at line 149 of file MutableCoefficientsInterface.C.
Referenced by FunctionSeries::FunctionSeries().
|
inherited |
Set the coefficients using a copy operation.
Definition at line 156 of file MutableCoefficientsInterface.C.
Referenced by MutableCoefficientsFunctionInterface::MutableCoefficientsFunctionInterface().
|
inherited |
Set the coefficients using a move operation (only works with temp objects)
Definition at line 171 of file MutableCoefficientsInterface.C.
|
finalvirtual |
Definition at line 249 of file FXIntegralBaseUserObject.h.
|
finalvirtual |
Definition at line 236 of file FXIntegralBaseUserObject.h.
|
static |
Definition at line 106 of file FXIntegralBaseUserObject.h.
Referenced by FXVolumeUserObject::validParams(), and FXBoundaryBaseUserObject::validParams().
|
protectedinherited |
An array of integer characteristics that can be used to check compatibility.
Definition at line 105 of file MutableCoefficientsInterface.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject(), MutableCoefficientsInterface::getCharacteristics(), MutableCoefficientsInterface::isCompatibleWith(), and MutableCoefficientsInterface::setCharacteristics().
|
protected |
History of the expansion coefficients for each solve.
Definition at line 83 of file FXIntegralBaseUserObject.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject().
|
protected |
Current coefficient partial sums.
Definition at line 86 of file FXIntegralBaseUserObject.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject(), and FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::threadJoin().
|
protectedinherited |
The coefficient array.
Definition at line 111 of file MutableCoefficientsInterface.h.
Referenced by FunctionSeries::expand(), FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject(), MutableCoefficientsInterface::getCoefficients(), MutableCoefficientsInterface::getSize(), MutableCoefficientsInterface::importCoefficients(), operator<<(), MutableCoefficientsInterface::operator[](), MutableCoefficientsInterface::resize(), and MutableCoefficientsInterface::setCoefficients().
|
protectedinherited |
Boolean that locks or allows resizing of the coefficient array.
Definition at line 114 of file MutableCoefficientsInterface.h.
Referenced by MutableCoefficientsInterface::enforceSize(), MutableCoefficientsInterface::isCompatibleWith(), MutableCoefficientsInterface::isSizeEnforced(), MutableCoefficientsInterface::resize(), and MutableCoefficientsInterface::setCoefficients().
|
protected |
Reference to the underlying function series.
Definition at line 89 of file FXIntegralBaseUserObject.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject().
|
protected |
Keep the expansion coefficients after each solve.
Definition at line 92 of file FXIntegralBaseUserObject.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::FXIntegralBaseUserObject().
|
protectedinherited |
Boolean to flag if the coefficients should be printed when set.
Definition at line 117 of file MutableCoefficientsInterface.h.
Referenced by MutableCoefficientsInterface::importCoefficients(), MutableCoefficientsInterface::resize(), and MutableCoefficientsInterface::setCoefficients().
|
protected |
Flag to prints the state of the zeroth instance in finalize()
Definition at line 95 of file FXIntegralBaseUserObject.h.
|
protected |
Volume of the standardized functional space of integration.
Definition at line 98 of file FXIntegralBaseUserObject.h.
|
protected |
Moose volume of evaluation.
Definition at line 101 of file FXIntegralBaseUserObject.h.
Referenced by FXIntegralBaseUserObject< ElementIntegralVariableUserObject >::threadJoin().