IntegralPreservingFunctionIC

Function initial condition that preserves an integral

Description

Sets an initial condition while preserving an integral. The "function" is used to specify the overall "form" of the initial condition, such that the applied initial condition is

(1)

where is the variable, is the function, and is a scaling factor used to preserve a total "magnitude" upon volume integration:

(2)

where is the total magnitude and is the domain of integration.

Example Input Syntax

As an example, below we set a sinusoidal heat source with generic form for a total magnitude of 550 (upon volume integration). This means that the actual initial condition is , where is determined in order to satisfy the specified total volume integral.

[ICs]
  [power]
    type = IntegralPreservingFunctionIC
    variable = power
    magnitude = 550.0
    function = 'sin(pi * z / 1.9)'
    integral = vol
  []
[]

[Postprocessors]
  [vol]
    type = FunctionElementIntegral
    function = 'sin(pi * z / 1.9)'
    execute_on = 'initial'
  []
  [integrated_power] # should equal 550
    type = ElementIntegralVariablePostprocessor
    variable = power
  []
[]
(moose/test/tests/ics/integral_preserving_function_ic/sinusoidal_z.i)

Input Parameters

  • functionThe initial condition function.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial condition function.

  • integralPostprocessor providing the integral of the function, for normalization

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Postprocessor providing the integral of the function, for normalization

  • magnitudeDesired magnitude of the initial condition upon integration

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Desired magnitude of the initial condition upon integration

  • variableThe variable this initial condition is supposed to provide values for.

    C++ Type:VariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The variable this initial condition is supposed to provide values for.

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Unit:(no unit assumed)

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • scaling_factor1Scaling factor to apply on the function

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Scaling factor to apply on the function

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Unit:(no unit assumed)

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • ignore_uo_dependencyFalseWhen set to true, a UserObject retrieved by this IC will not be executed before the this IC

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:When set to true, a UserObject retrieved by this IC will not be executed before the this IC

Advanced Parameters