This was an error I am surprised I was even able to locate to the solver because I thought it was something related to the circuit solver. So far, the ODE is solved as an entire state vector at a time. This means, all states are calculated together and when one state needs the information of another state it used the previous value of the state. So even if a more updated value of a state is available, with this method the previous value is used.
This actually defeats the purpose of solving ODEs in a backward manner. That is we solve from the last state to the first state since the matrices have been made upper triangular.
So, the ODE was changed such that a particular state is calculated completely, its value is updated and this updated value is available for the next state to be calculated.
Here is the code (click on "view raw" below the code box to view the code in another window):
This actually defeats the purpose of solving ODEs in a backward manner. That is we solve from the last state to the first state since the matrices have been made upper triangular.
So, the ODE was changed such that a particular state is calculated completely, its value is updated and this updated value is available for the next state to be calculated.
Here is the code (click on "view raw" below the code box to view the code in another window):
No comments:
Post a Comment