Implicit Disciplines#
Implicit disciplines are based on the discipline service, like the explicit disciplines. They also use composition and are defined as:
service ImplicitService {
// Calls the discipline Compute function
rpc ComputeResiduals(stream Array) returns (stream Array) {}
// Calls the discipline RPC that solves the nonlinear equations
rpc SolveResiduals(stream Array) returns (stream Array) {}
// Calls the discipline ComputePartials function
rpc ComputeResidualGradients(stream Array) returns (stream Array) {}
}
ComputeResiduals#
The ComputeResiduals function evaluates the residual given a set of inputs.
SolveResiduals#
The SolveResiduals function solves the residual (drives it to zero) and returns the discipline outputs for that state.
ComputeResidualGradients#
The ComputeResidualGradients function computes the derivatives of the ComputeResiduals function.