CATEGORII DOCUMENTE |
Asp | Autocad | C | Dot net | Excel | Fox pro | Html | Java |
Linux | Mathcad | Photoshop | Php | Sql | Visual studio | Windows | Xml |
Table 8 lists the output control functions. These functions set or add requested output times and tell the integrator whether to handle output of the states or rely on the ODE object to perform that function.
Table 8 Output Control Functions.
Function |
Description |
SetTOut |
Sets the requested output times. |
AppendTOut |
Adds additional requested output times. |
LogOutput |
Tells the integrator to keep track of the state output or let the ODE object handle it. |
LoggingOutput |
Reports whether the integrator is currently keeping track of the state output. |
pInteg->SetTOut();
pInteg->SetTOut(cvTOut);
pInteg->SetTOut(faTOut, iNumTOut);
pInteg->SetTOut(t0, tf);
pInteg->SetTOut(t0, tf, dt);
Variable |
Type |
Description |
cvTOut |
colvec |
Column vector of requested output times. |
faTOut |
double* |
Array of requested output times |
iNumTOut |
int |
Number of elements in faTOut. |
t0 |
double |
Desired start time. |
tf |
double |
Desired final time. |
dt |
double |
(Optional). Delta time-step between outputs. Default: 1.0. |
None.
There are many version of this function to accommodate different styles of input. The first version takes no input but will check the ODE to see if it can supply a default set of output times. The second version requires a column vector with each element representing a desired output time. The third performs the same operation with an array of values. The final versions allow you to specify a uniformly spaced list of values.
In each case, the input is checked that all values are monotonically increasing or decreasing. The direction of integration (forward or backward in time) is determined from the direction of the input values. The initial integration time will be the first value of the array. Note, however, that you can specify a single output time and then use SetT0( to give a different starting time. In this case, the integrator will start at the time set by SetT0( and integrate to the time set with SetTOut(), outputting the results only at that time.
Care must be taken when setting output times with fixed step size methods. The output times must be aligned with the step times or problems will occur. For variable step size methods without dense output, the integration can become inefficient if the requested times are too close together. In this case, the integrator will reduce the step size to ensure the step does not pass the output time. This can lead to very small or erratic step sizes. This problem does not occur with methods that use dense output.
pInteg->AppendTOut(cvTOut);
pInteg->AppendTOut(faTOut, iNumTOut);
pInteg->AppendTOut(t);
Variable |
Type |
Description |
cvTOut |
colvec |
Column vector of additional requested output times. |
faTOut |
double* |
Array of additional requested output times |
iNumTOut |
int |
Number of elements in faTOut. |
t |
double |
Desired single additional output time. |
None.
As with SetTOut( , there are many version of this function to accommodate different styles of input. The first version requires a column vector with each element representing a desired output time. The second performs the same operation with an array of values. The final versions allow you to specify a single additional output time.
In each case, the input is checked that all values are monotonically increasing or decreasing and that they are consistent with the existing requested output times. The direction of integration (forward or backward in time) must be the same as before.
One use for this routine is to allow you to integrate the ODE to a given time, check its value, and integrate farther if needed based on the results of the first part of the integration. This routine clears the error generated if you try to integrate past the final output time.
pInteg->LogOutput();
pInteg->LogOutput(flag);
Variable |
Type |
Description |
flag |
bool |
(Optional). Flag to tell the integrator whether to keep track of output or let the ODE be responsible for it. Default: true. |
None.
Use this routine to tell the integrator whether you wish it to output the state vector. By default, the integrator will record the states at every requested output time set by SetTOut( . At each of these times, the ODE function OutputStep( is also called to let the ODE handle any output it wishes. By passing false to this routine you can tell the integrator to stop logging the output and thus rely only on output by the ODE. This is particularly useful when there are a large number of output times such that memory requirements would be prohibitive to store all of the values. In this way you can use the ODE output routine to write directly to disk.
if ( pInteg->LoggingOutput() ).
None.
Type |
Description |
bool |
Flag indicating whether the integrator is responsible for logging output or not. |
None.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 608
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved