BicubicSplineFunction

Define a bicubic spline function from interpolated data defined by input parameters.

The BicubicSplineFunction defines a 2D spline shape, which can be evaluated everywhere in the domain by translation. The 2D plane for defining the spline is set by specifying the normal parameter.

The spline is uniquely defined by:

  • its values the 2D plane at the (x1, x2) points, given by the y parameter. The points form a 2D grid, which each x1 being the abscissa for a line in this grid, with points at each x2 specified

  • its derivatives along x1 and x2 at the points on each extremity, given by yx11, yx1n, yx21, yx2n

  • a functional form for the derivative along both directions, given by yx1 and yx2

From this information the bicubic spline is automatically generated. Both the first and second order derivatives of the spline are defined.

Example input syntax

In this example, we define a bicubic spline from a list of points and derivatives. The z normal is assumed by default and the bicubic spline is defined in the XY plane. The grid for the points has 3 points along the x direction and 4 points along the y direction.

[Functions]
  [./yx1]
    type = ParsedFunction
    value = '3*x^2'
  [../]
  [./yx2]
    type = ParsedFunction
    value = '6*y^2'
  [../]
  [./spline_fn]
    type = BicubicSplineFunction
    x1 = '0 2 4'
    x2 = '0 2 4 6'
    y = '0 16 128 432 8 24 136 440 64 80 192 496'
    yx11 = '0 0 0 0'
    yx1n = '48 48 48 48'
    yx21 = '0 0 0'
    yx2n = '216 216 216'
    yx1 = 'yx1'
    yx2 = 'yx2'
  [../]
  [./u_func]
    type = ParsedFunction
    value = 'x^3 + 2*y^3'
  [../]
  [./u2_forcing_func]
    type = ParsedFunction
    value = '-6*x - 12*y'
  [../]
[]
(../../../SoftwareDownloads/moose/test/tests/utils/spline_interpolation/bicubic_spline_interpolation.i)

Input Parameters

  • x1The first independent coordinate.

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

    Controllable:No

    Description:The first independent coordinate.

  • x2The second independent coordinate.

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

    Controllable:No

    Description:The second independent coordinate.

  • yThe dependent values

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

    Controllable:No

    Description:The dependent values

Required Parameters

  • execute_onLINEARThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, ALWAYS.

    Default:LINEAR

    C++ Type:ExecFlagEnum

    Options:NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, ALWAYS

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM, ALWAYS.

  • normal_componentzThe component of the geometry that is normal to the spline x1/x2 values

    Default:z

    C++ Type:MooseEnum

    Options:x, y, z

    Controllable:No

    Description:The component of the geometry that is normal to the spline x1/x2 values

  • yx11e30The functional form of the derivative with respect to x1.

    Default:1e30

    C++ Type:FunctionName

    Controllable:No

    Description:The functional form of the derivative with respect to x1.

  • yx11The values of the derivative wrt x1 on the lower interpolation grid points.

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

    Controllable:No

    Description:The values of the derivative wrt x1 on the lower interpolation grid points.

  • yx1nThe values of the derivative wrt x1 on the upper interpolation grid points.

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

    Controllable:No

    Description:The values of the derivative wrt x1 on the upper interpolation grid points.

  • yx21e30The functional form of the derivative with respect to x2.

    Default:1e30

    C++ Type:FunctionName

    Controllable:No

    Description:The functional form of the derivative with respect to x2.

  • yx21The values of the derivative wrt x2 on the lower interpolation grid points.

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

    Controllable:No

    Description:The values of the derivative wrt x2 on the lower interpolation grid points.

  • yx2nThe values of the derivative wrt x2 on the upper interpolation grid points.

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

    Controllable:No

    Description:The values of the derivative wrt x2 on the upper interpolation grid points.

Optional Parameters

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

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

    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

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters