ScalarKernels System
Scalar kernels are used to define systems of ordinary differential equations (ODEs), which lack spatial derivatives. These are used in initial value problems, with time as the independent variable: where is the dependent variable, is the steady-state residual function, and is the initial value.
Automatic Differentiation
Scalar kernels have the ability to be implemented with automatic differentiation (AD). While AD is not necessary for systems of ordinary differential equations (ODEs) involving only scalar variables (due to the exact Jacobians offered by ParsedODEKernel, for example), ODEs involving contributions from field variables greatly benefit from AD. For example, an elemental user object may compute an ADReal
value from field variable(s) on a domain, which then may be used in a scalar equation.
To create an AD scalar kernel, derive from ADScalarKernel
and implement the method computeQpResidual()
.
ADScalarKernel
only works with MOOSE configured with global AD indexing (the default).
As a caution, if using user objects to compute ADReal
values, be sure to execute those user objects on NONLINEAR
to ensure the derivatives in the ADReal
value are populated.
Available Objects
- Moose App
- ADScalarTimeDerivativeAdds the time derivative contribution to the residual for a scalar variable.
- AverageValueConstraintThis class is used to enforce integral of phi with a Lagrange multiplier approach.
- CoupledODETimeDerivativeResidual contribution of ODE from the time derivative of a coupled variable.
- NodalEqualValueConstraintConstrain two nodes to have identical values.
- ODETimeDerivativeReturns the time derivative contribution to the residual for a scalar variable.
- ParsedODEKernelParsed ODE function kernel.
- Tensor Mechanics App
- GeneralizedPlaneStrainGeneralized Plane Strain Scalar Kernel
- GlobalStrainScalar Kernel to solve for the global strain
- HomogenizationConstraintScalarKernel
Available Actions
- Moose App
- AddScalarKernelActionAdd a AuxScalarKernel object to the simulation.