https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
GravityVectorInterface Class Reference

Interface for specifying gravity vector. More...

#include <GravityVectorInterface.h>

Inheritance diagram for GravityVectorInterface:
[legend]

Public Member Functions

 GravityVectorInterface (const MooseObject *moose_object)
 
Real gravityMagnitude () const
 Gets gravity magnitude.
 
const RealVectorValue & gravityVector () const
 Gets gravity magnitude.
 
const RealVectorValue & gravityDirection () const
 Gets gravity direction (zero vector if zero magnitude)
 

Static Public Member Functions

static InputParameters validParams ()
 

Private Attributes

RealVectorValue _gravity_vector
 Gravitational acceleration vector.
 
Real _gravity_magnitude
 Gravitational acceleration magnitude.
 
RealVectorValue _gravity_direction
 Gravitational acceleration unit direction.
 

Detailed Description

Interface for specifying gravity vector.

Definition at line 18 of file GravityVectorInterface.h.

Constructor & Destructor Documentation

◆ GravityVectorInterface()

GravityVectorInterface::GravityVectorInterface ( const MooseObject moose_object)

Definition at line 32 of file GravityVectorInterface.C.

33{
34 if (moose_object->isParamValid("gravity_direction"))
35 {
36 if (moose_object->isParamValid("gravity_vector"))
37 moose_object->paramError(
38 "gravity_direction",
39 "The parameters 'gravity_vector' and 'gravity_direction' are mutually exclusive.");
40
41 _gravity_magnitude = moose_object->getParam<Real>("gravity_magnitude");
42
43 // Direction is normalized below
44 _gravity_direction = moose_object->getParam<RealVectorValue>("gravity_direction");
45
46 // If gravity is zero, direction is the zero vector (which is initial value)
47 if (MooseUtils::absoluteFuzzyEqual(_gravity_direction.norm(), 0.0))
48 {
49 if (!MooseUtils::absoluteFuzzyEqual(_gravity_magnitude, 0.0))
50 mooseError("If 'gravity_direction' is zero, then 'gravity_magnitude' must also be zero.");
51 }
52 else
53 {
54 // If gravity is zero, direction is the zero vector
55 if (MooseUtils::absoluteFuzzyEqual(_gravity_magnitude, 0.0))
57 else
59 }
60
62 }
63 else if (moose_object->isParamValid("gravity_vector"))
64 {
65 if (moose_object->isParamSetByUser("gravity_magnitude"))
66 moose_object->paramError(
67 "gravity_magnitude",
68 "The parameters 'gravity_vector' and 'gravity_magnitude' are mutually exclusive.");
69
70 _gravity_vector = moose_object->getParam<RealVectorValue>("gravity_vector");
72
73 // If gravity is zero, direction is the zero vector
74 if (MooseUtils::absoluteFuzzyEqual(_gravity_magnitude, 0.0))
76 else
78 }
79 else
80 moose_object->paramError("gravity_vector",
81 "Either 'gravity_vector' or 'gravity_direction' must be specified.");
82}
void mooseError(Args &&... args)
RealVectorValue _gravity_direction
Gravitational acceleration unit direction.
RealVectorValue _gravity_vector
Gravitational acceleration vector.
Real _gravity_magnitude
Gravitational acceleration magnitude.
void paramError(const std::string &param, Args... args) const
bool isParamSetByUser(const std::string &name) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const
TypeVector< T > unit() const
VectorValue< Real > RealVectorValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ gravityDirection()

const RealVectorValue & GravityVectorInterface::gravityDirection ( ) const
inline

Gets gravity direction (zero vector if zero magnitude)

Definition at line 30 of file GravityVectorInterface.h.

30{ return _gravity_direction; }

Referenced by TestGravityVectorInterface::getValue().

◆ gravityMagnitude()

Real GravityVectorInterface::gravityMagnitude ( ) const
inline

Gets gravity magnitude.

Definition at line 26 of file GravityVectorInterface.h.

26{ return _gravity_magnitude; }

Referenced by TestGravityVectorInterface::getValue().

◆ gravityVector()

const RealVectorValue & GravityVectorInterface::gravityVector ( ) const
inline

Gets gravity magnitude.

Definition at line 28 of file GravityVectorInterface.h.

28{ return _gravity_vector; }

Referenced by TestGravityVectorInterface::getValue(), and HydrostaticPressureFunction::value().

◆ validParams()

InputParameters GravityVectorInterface::validParams ( )
static

Definition at line 16 of file GravityVectorInterface.C.

17{
19 params.addParam<Real>("gravity_magnitude",
21 "Magnitude of the gravitational acceleration [m/s^2]");
23 "gravity_direction",
24 "Direction of gravitational acceleration. This will be normalized and multiplied by "
25 "'gravity_magnitude'. This parameter is mutually exclusive with 'gravity_vector'.");
26 params.addParam<RealVectorValue>("gravity_vector",
27 "Gravitational acceleration vector [m/s^2]. This parameter is "
28 "mutually exclusive with 'gravity_direction'.");
29 return params;
30}
InputParameters emptyInputParameters()
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
const auto acceleration_of_gravity

Referenced by HydrostaticPressureFunction::validParams(), and TestGravityVectorInterface::validParams().

Member Data Documentation

◆ _gravity_direction

RealVectorValue GravityVectorInterface::_gravity_direction
private

Gravitational acceleration unit direction.

Definition at line 38 of file GravityVectorInterface.h.

Referenced by gravityDirection(), and GravityVectorInterface().

◆ _gravity_magnitude

Real GravityVectorInterface::_gravity_magnitude
private

Gravitational acceleration magnitude.

Definition at line 36 of file GravityVectorInterface.h.

Referenced by gravityMagnitude(), and GravityVectorInterface().

◆ _gravity_vector

RealVectorValue GravityVectorInterface::_gravity_vector
private

Gravitational acceleration vector.

Definition at line 34 of file GravityVectorInterface.h.

Referenced by gravityVector(), and GravityVectorInterface().


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