LLNL / sundials

Official development repository for SUNDIALS - a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. Pull requests are welcome for bug fixes and minor changes.
https://computing.llnl.gov/projects/sundials
BSD 3-Clause "New" or "Revised" License
509 stars 123 forks source link

Question about the Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) command #125

Closed jianqixi closed 2 years ago

jianqixi commented 2 years ago

Dear All,

I have one question about the CVode solver. In my current code, I have used Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) to solve my ODE function, f, but it seems like the solver has been trapped in a cycle. It always calls the ODE function, f, (I defined one "hello" output in function f if the function is called), but the solver does not get the solution. Does it mean the solver is trapped in the internal step? What is the solver doing in the cycle, does it updates the step size?

To check whether the solver is trapped in the internal step, I tried to artificially terminate the cycle by using CVodeSetMaxNumSteps(cvode_mem, mxsteps=3), but it still doesn't work, the solver still calls the ODE function, f, multiple times. So now I am a little bit confusing, if the solver is trapped in the internal step, why after I define the max step =3, does it still go inside the ODE function multiple times? Thank you for your answers.

sundials-users-github-account commented 2 years ago

Dear Jianqi Xi,

you are probably using a dense solver with a DQ-approximation of the Jacobian - this procedure indeed calls the f() function several times with slight changes in the y-vector.

If this is the first time you use generic DQ-algorithms, your confusion is completely understandable :-)

However, if you come to CVODE from some simple step-by-step integration (explicit Euler etc.), it is very important to realize that with CVODE you cannot rely on the assumption, that your time is always progressing ahead in your f() function calls! Also, do not try to add side-effects in your f-function, like manual integration of extra states. These are all typical beginner errors that may lead to a lot of debugging headaches.

You may consider reading up on: http://sundials.wikidot.com/usage and the descriptions on this page. Unfortunately, there is no really "absolute beginners" tutorial for new users of automatic implicit integrators.

-Andreas

Am 20.04.22 um 20:58 schrieb Jianqi Xi:

Dear All,

I have one question about the CVode solver. In my current code, I have used Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) to solve my ODE function, f, but it seems like the solver has been trapped in a cycle. It always calls the ODE function, f, (I defined one "hello" output in function f if the function is called), but the solver does not get the solution. Does it mean the solver is trapped in the internal step? What is the solver doing in the cycle, does it updates the step size?

To check whether the solver is trapped in the internal step, I tried to artificially terminate the cycle by using CVodeSetMaxNumSteps(cvode_mem, mxsteps=3), but it still doesn't work, the solver still calls the ODE function, f, multiple times. So now I am a little bit confusing, if the solver is trapped in the internal step, why after I define the max step =3, does it still go inside the ODE function multiple times? Thank you for your answers.

— Reply to this email directly, view it on GitHub https://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125__;!!G2kpM7uM-TzIFchu!n99iUkkEa5QgPiVRnh62ao_s6_LmKIEKrat0fK6l7cKrjP8xHDiXLR9_M4bl-3q25WE9_w$, or unsubscribe https://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGEXIC2W25XRYOSUFZZDVGBHXBANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!n99iUkkEa5QgPiVRnh62ao_s6_LmKIEKrat0fK6l7cKrjP8xHDiXLR9_M4bl-3pakHCUOQ$. You are receiving this because you are subscribed to this thread.Message ID: @.***>


To unsubscribe from the SUNDIALS-USERS list: write to: @.***

jianqixi commented 2 years ago

Dear Andreas,

Thank you so much for your comments. Yes, currently my code is using the Dense solver, because I have tested different linear solvers, like Band matrix and matrix-free SPGRM solver, both of them are less effective than the Dense solver.

Following your comments, I am wondering could we control the times that the solver calls the f() function? like, set up some commands to expedite the convergence of the DQ algorithm? Thank you very much for your further suggestions.

drreynolds commented 2 years ago

Dear @jianqixi,

The DQ algorithm is not iterative, so there is no "convergence" to accelerate. It is used to approximate the entries of the Jacobian matrix, $\partial f / \partial y$ for the ODE right-hand side function $f(t,y)$. If these calls to $f$ are overly costly, then perhaps the most cost effective way to speed up your calculation would be to provide your own routine to compute this Jacobian analytically. I'll note that this must be done with care, since errors in that calculation can severely harm, or even destroy, convergence of the Newton solver on which CVODE's implicit methods rely.

jianqixi commented 2 years ago

Dear @drreynolds Thank you very much for your suggestions. Yes, I also thought that rebuild the own Jacobian may destroy the structure of my current code. I may need to find out some other way to speed it up. Thank you very much!

sundials-users-github-account commented 2 years ago

Hello Jianqui Xi,

Just to add a little to Daniel's reply -- When using the Dense solver with DQ Jacobian, the number of calls to f for each Jacobian evaluation is N + 1, where N is the system size. What is your value of N? There is nothing you can do to control when those evaluations are done, but the solver has internal rules that try to keep the number of those evaluations to a minimum, and re-use each Jacobian for as long as possible. The number of calls to f other than those for J is generally only 2-4 per time step. If you get the run counters at the end of the run, you can check that the f call count is reasonable from the count of steps and J evaluations.

As Daniel said, you might want to try providing the Jacobian directly to reduce the cost of those extra f calls.

-Alan H


From: sundials-users @.> on behalf of Jianqi Xi @.> Sent: Friday, April 22, 2022 7:38 AM To: sundials-users @.***> Subject: Re: [sundials-users] [LLNL/sundials] Question about the Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) command (Issue #125)

Dear Andreas,

Thank you so much for your comments. Yes, currently my code is using the Dense solver, because I have tested different linear solvers, like Band matrix and matrix-free SPGRM solver, both of them are less effective than the Dense solver.

Following your comments, I am wondering could we control the times that the solver calls the f() function? like, set up some commands to expedite the convergence of the DQ algorithm? Thank you very much for your further suggestions.

— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125*issuecomment-1106581458__;Iw!!G2kpM7uM-TzIFchu!ltZMkR4xaZg9ce-M3IdDYEt68Xppl2BKHQmDlCSlvB0Xdyie-688RYSqHO6qNozglzwI1w$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGEV345CFDZFRA5TVP73VGK2UVANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!ltZMkR4xaZg9ce-M3IdDYEt68Xppl2BKHQmDlCSlvB0Xdyie-688RYSqHO6qNozO0ThVfg$. You are receiving this because you commented.Message ID: @.***>


To unsubscribe from the SUNDIALS-USERS list: write to: @.***

jianqixi commented 2 years ago

@sundials-users-github-account Hi Alan, thank you very much for your further clarification. Currently, the system size is 2886, for this case, even though I know the code is running, I cannot get any solution for more than one week. It is sad.

If I am not wrong, the time step is what I controlled based on the mxsteps. In this case, one wired thing is that In my code, it seems like the number of calls for f() is much larger than 2-4 per time step. Do you think it is normal? Thank you very much!

sundials-users-github-account commented 2 years ago

I can't tell how many f calls would be normal for you. Remember that CVODE is doing 2886 extra calls to your f() function for each J evaluation. How many J evaluations are there in a typical run? And how many time steps?

For a system size that large, you should try to exploit the Jacobian structure if you can. If the coupling is banded, the band linear solver will save a lot of time. If it is a general sparse structure, try the sparse solver.

Yes, the number of internal time steps is controlled by mxsteps, but that is only the maximum number between tout values. If you see an unreasonably large number of time steps, there may be some other problem with your setup.

-Alan H


From: sundials-users @.> on behalf of Jianqi Xi @.> Sent: Sunday, April 24, 2022 8:23 AM To: sundials-users @.***> Subject: Re: [sundials-users] [LLNL/sundials] Question about the Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) command (Issue #125)

@sundials-users-github-accounthttps://urldefense.us/v3/__https://github.com/sundials-users-github-account__;!!G2kpM7uM-TzIFchu!k5-lKcVsY6JvY_Ga1hIZZ4pthAGGFqa9TX9SQ50hApkeH6-PYrkrSGXfjSJFWzpmap07ug$ Hi Alan, thank you very much for your further clarification. Currently, the system size is 2886, for this case, even though I know the code is running, I cannot get any solution for more than one week. It is sad.

If I am not wrong, the time step is what I controlled based on the mxsteps. In this case, one wired thing is that In my code, it seems like the number of calls for f() is much larger than 2-4 per time step. Do you think it is normal? Thank you very much!

— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125*issuecomment-1107862746__;Iw!!G2kpM7uM-TzIFchu!k5-lKcVsY6JvY_Ga1hIZZ4pthAGGFqa9TX9SQ50hApkeH6-PYrkrSGXfjSJFWzqfARgQgw$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGEU24HOIGRUEH2BJFB3VGVRODANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!k5-lKcVsY6JvY_Ga1hIZZ4pthAGGFqa9TX9SQ50hApkeH6-PYrkrSGXfjSJFWzqCkg2ilw$. You are receiving this because you were mentioned.Message ID: @.***>


To unsubscribe from the SUNDIALS-USERS list: write to: @.***

jianqixi commented 2 years ago

@sundials-users-github-account Thank you very much for your comments. For the times of J evaluations. Previously I didn't count the specific time, since it took around 2 days for running but was still not finished yet. At that time, I just terminated the code. But I can try to run it for a longer time to count the specific times for the J evaluations. Here I have another stupid question how could I count how many time steps I have run, since my current code is still within the first tout? Thank you!

I think my current case is not effective for the Band matrix solver, I have tested the code with the band solver, but it looks like slower than the dense one. I think the general sparse solver could be possible. I would try that one. Here I have one question for the sparse solver. For this one, do I need to define the Jacobian matrix by myself as the Dense solver have to do? Or I can just use the default one? Thank you very much!

drreynolds commented 2 years ago

@jianqixi,

SUNDIALS does not provide routines to approximate the entries of a sparse Jacobian, so you would need to write this function yourself. However, I strongly recommend against arbitrarily trying different matrix formats in the hope that the runtimes improve -- you must understand the structure of your problem and choose the matrix format that is most appropriate for that structure. The fundamental question here is: if fvec = f(t,u), then for each of your 2886 entries in the vector fvec, how many entries from u does it depend on? For example:

CVODE includes multiple routines to return solver statistics, but these must typically be called after Cvode returns at a given tout. If you would like to better understand what is going on with your current run, then I would recommend that you do some debugging runs where you set tout to be much closer to your initial time. Then once Cvode returns at that first tout value, you can inquire about function calls, etc.

jianqixi commented 2 years ago

@drreynolds Thank you very much for your clarification. For my case, I think it belongs to the sparse one, because in my code only few of u in each equation will directly determine the vector fvec. Thank you very much!

Meanwhile, thank you very much for your suggestions on the solver statistics. I will try to test the outputs to further understand the solvers. Thank you!

jianqixi commented 2 years ago

@drreynolds I have one quick question about the user-defined Jacobian matrix. I am wondering do you have any package recommendations that can be used for this? Since the matrix of my case has a large size, it would be difficult for me to write one handed-code for each element in the Jacobian matrix. So I want to know if you have any used packages or software that can be used? Thank you,

drreynolds commented 2 years ago

@jianqixi: I do not have any specific recommendation for you on this, since this really depends on the nature of your ODE system, and how you are computing the Jacobian. If you are using some kind of symbolic math package to compute the Jacobian, then there may exist code generation utilities to convert from your symbolic representation to compiled code. Depending on the nature of your RHS routine, you may be able to use an Algorithmic Differentiation (AD) tool to create a Jacobian computation routine. Alternately, if you are computing these Jacobian entries by hand then your only option may be to hand-code the Jacobian routine.

jianqixi commented 2 years ago

@drreynolds Thank you for your response. Yes, I am trying to use the symbolic math package to build the Jacobian, because each element in the Jacobian has some variables, e.g. y , that need to be obtained from the solver. I have searched some AD tools, like Adept and CppAD, it seems like those tools are trying to provide the numerical value for the Jacobian elements, but that is not what I want. Thank you

sundials-users-github-account commented 2 years ago

On Tue, May 3, 2022 at 7:40 PM Daniel R. Reynolds < @.***> wrote:

@jianqixi https://urldefense.us/v3/__https://github.com/jianqixi__;!!G2kpM7uM-TzIFchu!gk1-yMI39itUyNXE9o6Kt3R169PbK5g849q8q5qXspfkBwhnTma-tmuigWu5TgM6kA6K-Q$: I do not have any specific recommendation for you on this, since this really depends on the nature of your ODE system, and how you are computing the Jacobian. If you are using some kind of symbolic math package to compute the Jacobian, then there may exist code generation utilities to convert from your symbolic representation to compiled code. Depending on the nature of your RHS routine, you may be able to use an Algorithmic Differentiation (AD) tool to create a Jacobian computation routine. Alternately, if you are computing these Jacobian entries by hand then your only option may be to hand-code the Jacobian routine.

— Reply to this email directly, view it on GitHub https://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125*issuecomment-1116304926__;Iw!!G2kpM7uM-TzIFchu!gk1-yMI39itUyNXE9o6Kt3R169PbK5g849q8q5qXspfkBwhnTma-tmuigWu5TgP2-H3bgw$, or unsubscribe https://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGEXZXBLAQEPDIRD4LA3VIFI5BANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!gk1-yMI39itUyNXE9o6Kt3R169PbK5g849q8q5qXspfkBwhnTma-tmuigWu5TgNeqIx9cA$ . You are receiving this because you were mentioned.Message ID: @.***>

I am writing mathematical computation programs . When a Hessian ( or Jacobian , Gradient , ... ) is needed , there may be two alternatives :

or

My suggestion :

If your need is NOT "absolute correctness" please use a good numerical Hessian computation routine .

My experience is that numerically computed Hessian is better than symbolically computed Hessian .

If hand generated symbolic Hessian is used , for large and/or complex formulas , correctness of your Hessian computation will not be guaranteed , meaning do not waste your time .

If you need "absolute correctness" , please use "arbitrary precision" arithmetic for your Hessian .

If you use arbitrary precision arithmetic , the best approach is this . My experience is that present day CPUs using even 128 bit computation are a DISASTER for numerical computations .

I can surely say that your computations ARE NOT RELATED TO YOUR SYSTEM but an EXTREMELY different system with another DISASTROUS error about assuming that you have solved your problem when it is not solved your problem .

For small or let's say well-defined problems the case may not be so much disaster . The DISASTER is , by starting such correct solutions to reach to the conclusion that you are solving YOUR problem for large or problems when their nature is very unknown .

You may find such a software in the following links or among many other similar sources :

https://www.davidhbailey.com/dhbsoftware/ High-Precision Software Directory Updated 18 Apr 2022

https://www.google.com/search?q=bailey+arbitrary+precision&sxsrf=ALiCzsZt6VvPBA-MuXZmkTriwO8W2dRBdA%3A1651599513336&source=hp&ei=mWhxYoHtEeaMxc8PsLeXoAI&iflsig=AJiK0e8AAAAAYnF2qaGgOy4Da982TysUdoxKJ2WFrY2d&ved=0ahUKEwjBnbTS78P3AhVmRvEDHbDbBSQQ4dUDCAY&uact=5&oq=bailey+arbitrary+precision&gs_lcp=Cgdnd3Mtd2l6EAMyBQghEKABMgUIIRCgAToECCMQJzoLCC4QgAQQxwEQowI6BQgAEIAEOgUILhCABDoICC4QgAQQ1AI6CwguEIAEEMcBENEDOgUIABDLAToFCC4QywE6CgguEMcBENEDEAo6CAgAEBYQChAeOgYIABAWEB46BAgAEA06BAghEBU6BwghEAoQoAFQAFjRfGCKhwFoAHAAeACAAZEBiAHTGJIBBDAuMjaYAQCgAQE&sclient=gws-wiz bailey arbitrary precision

With my best wishes ,

Mehmet Erol Sanliturk


To unsubscribe from the SUNDIALS-USERS list: write to: mailto: @.***

jianqixi commented 2 years ago

@sundials-users-github-account Thank you for your suggestions. It seems that for my case, which has large and complex equations, I should try to use the numerical AD algorithm, like the CppAD or Adept. But here I have one follow-up question about the numerical AD algorithm, if the element in my Jacobian matrix contains some unknown variables.

One specific example is that one of the ODE equation is dy(i)/dt = Ay(i) + By(i-1)y(i+1), then the element in the Jacobian matrix could be By(i+1), but if the y(i+1) is the unknown and be the solution of the solver. In this case, could I still use the numerical AD algorithm? Thank you for your clarification.

sundials-users-github-account commented 2 years ago

On Wed, May 4, 2022 at 12:15 AM Jianqi Xi < @.***> wrote:

@sundials-users-github-account https://urldefense.us/v3/__https://github.com/sundials-users-github-account__;!!G2kpM7uM-TzIFchu!jgxehGMCFmo9cMqrpM5_g0ZMt0jOBjakijYLsO7-u7_9yP2qC6nM0BThP-gyhrYHmcYsVA$ Thank you for your suggestions. It seems that for my case, which has large and complex equations, I should try to use the numerical AD algorithm, like the CppAD or Adept. But here I have one follow-up question about the numerical AD algorithm, if the element in my Jacobian matrix contains some unknown variables.

One specific example is that one of the ODE equation is dy(i)/dt = A*y(i)

  • By(i-1)y(i+1), then the element in the Jacobian matrix could be B*y(i+1), but if the y(i+1) is the unknown and be the solution of the solver. In this case, could I still use the numerical AD algorithm? Thank you for your clarification.

— Reply to this email directly, view it on GitHub https://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125*issuecomment-1116562716__;Iw!!G2kpM7uM-TzIFchu!jgxehGMCFmo9cMqrpM5_g0ZMt0jOBjakijYLsO7-u7_9yP2qC6nM0BThP-gyhrZeocEh6A$, or unsubscribe https://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGEREY5MUTUOYCPDRWWLVIGDWFANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!jgxehGMCFmo9cMqrpM5_g0ZMt0jOBjakijYLsO7-u7_9yP2qC6nM0BThP-gyhrYNDKDMXg$ . You are receiving this because you were mentioned.Message ID: @.***>

Personally I am a graduate of Middle East Technical University , Mathematics Department ( Statistics and Operations Research Option ) ( 1974 ) .

Currently I am not using SUNDIALS to solve problems .

Since around 1972 my primary goal for scientific computations is to write a RESEARCH ANALYSIS compiler in form Research Analysis Language covering fields such as ( Mathematics , Statistics , Econometrics , ... ) able to generate solutions from descriptions written like given in the books , such as you have written a description above .

I want to develop such a part in front of the SUNDIALS to permit the users such as you to write your problem in mathematical form and let my ( some parts to be developed with many back end parts developed ) program to compile and interpret the compiled form .

In reality , in those days , I was thinking to ask in SUNDIALS mailing list the following question :

"I want to write ( the above defined ) program . Which format would be for the prospective users in this list :

Now let's come to your question .

I want to suggest to you a very unusual "thing" .

There are the following subjects :

https://en.wikipedia.org/wiki/Instrumental_variables_estimation#Interpretation_as_two-stage_least_squares

Instrumental variables estimation (Redirected from Two-stage least squares) <---------- ( Single equation )

https://en.wikipedia.org/wiki/Simultaneous_equations_model#Three-stage_least_squares_(3SLS)

Simultaneous equations model (Redirected from Three-stage least squares) <---------- ( Multi equations )

If you study the above pages , you will see that these subjects are dealing with estimation of interdependent variables in systems defined by linear single or multiple equations using a given data matrix .

It seems that you are trying to solve a linear system . It is very likely that the following programs will be usable for you .

If your system is nonlinear , I do not remember a nonlinear system solver . Solving nonlinear systems will require nonlinear optimization programs , unfortunately .

You may find open source free programs through the following searches :

https://www.google.com/search?q=open+source+repositories+about+two+stage+least+squares+systems&sxsrf=ALiCzsb0AfGhmbrzmipDVWIt-IeZsMTibA%3A1651615198097&ei=3qVxYojPBbGrrgT4tLOoAQ&ved=0ahUKEwiItsCJqsT3AhWxlYsKHXjaDBUQ4dUDCA0&uact=5&oq=open+source+repositories+about+two+stage+least+squares+systems&gs_lcp=Cgdnd3Mtd2l6EAM6BwgAEEcQsAM6BwgjELACECc6BAghEApKBAhBGABKBAhGGABQxAlYwUhg-VRoAXABeACAAZQBiAGgDpIBBDAuMTSYAQCgAQHIAQjAAQE&sclient=gws-wiz open source repositories about two stage least squares systems

https://www.google.com/search?q=open+source+repositories+about+three+stage+least+squares+systems&sxsrf=ALiCzsaiupT2B0eD7YG9eQOkhrKZdfT3_g%3A1651615221944&ei=9aVxYtSoOYvbrgTYq7_ABQ&ved=0ahUKEwiU9--UqsT3AhWLrYsKHdjVD1gQ4dUDCA0&uact=5&oq=open+source+repositories+about+three+stage+least+squares+systems&gs_lcp=Cgdnd3Mtd2l6EAM6BwgAEEcQsAM6BwgjELACECc6BAghEApKBAhBGABKBAhGGABQhg5YrCtg5EBoA3ABeACAAYIBiAHfBZIBAzAuNpgBAKABAcgBCMABAQ&sclient=gws-wiz open source repositories about three stage least squares systems

You may use these programs for your "piece-wise" computations .

My knowledge is so much .

You may ask more questions . I will try my best to help you . Since I am not actively solving such problems , my knowledge will likely be limited , but I do not hesitate to help you as much as I can .

With my best wishes .

Mehmet Erol Sanliturk


To unsubscribe from the SUNDIALS-USERS list: write to: mailto: @.***

drreynolds commented 2 years ago

@jianqixi, in response to your question from yesterday. If one ODE equation is

     dy(i)/dt = A y(i) + B y(i-1) y(i+1)
              = f_i(t,y)

then the ith row of your Jacobian matrix, J = df/dy, would have three nonzero entries:

    J(i,i-1) = B y(i+1)
    J(i,i)   = A
    J(i,i+1) = B y(i-1)

Note that the Jacobian entries themselves can depend on y, as with any time you take partial derivatives of a nonlinear function.

Typically, AD tools will allow you to input the state that you are differentiating with respect to. If these do not produce a Jacobian matrix, but instead they produce the product of that matrix and a vector, e.g., J v, then in the code that they produce you should have separate inputs for the state that you differentiate (y) and the vector that you multiply (v). The "challenge" arises in keeping these straight, and in how to unravel these to pack a Jacobian matrix. One option for filling a Jacobian matrix using these tools is to call the auto-generated code with vectors v that are taken as columns of an identity matrix. Each product J v would then correspond to a column of the matrix J.

jianqixi commented 2 years ago

@sundials-users-github-account Thank you so much for your fruitful suggestions and your kindness. I will try to look at the content that you shared. Thank you very much!

jianqixi commented 2 years ago

@drreynolds Thank you for your suggestions. If I can control the states of AD output, that would be very helpful. I may need to check it. Thank you very much!

sundials-users-github-account commented 2 years ago

That sounds like a good plan.

As an alternative, if that does work out, you can try using the Fortran solver LSODES, which also uses a sparse linear solver, and has options to let the solver determine the sparsity structure and compute the sparse Jacobian for you. LSODES is part of ODEPACK, available at: https://computing.llnl.gov/projects/odepack/

-Alan H


From: sundials-users @.> on behalf of Jianqi Xi @.> Sent: Wednesday, May 4, 2022 9:07 AM To: sundials-users @.***> Subject: Re: [sundials-users] [LLNL/sundials] Question about the Cvode(cvode_mem, tout, y0, &t, CV_NORMAL) command (Issue #125)

@drreynoldshttps://urldefense.us/v3/__https://github.com/drreynolds__;!!G2kpM7uM-TzIFchu!mII4tPLKYDwPQFozT6PVYa8p9xtQ_NU9g8dEaEZz4l2r-YLhBtc__8_XcdyYi9s47OGQRA$ Thank you for your suggestions. If I can control the states of AD output, that would be very helpful. I may need to check it. Thank you very much!

— Reply to this email directly, view it on GitHubhttps://urldefense.us/v3/__https://github.com/LLNL/sundials/issues/125*issuecomment-1117536891__;Iw!!G2kpM7uM-TzIFchu!mII4tPLKYDwPQFozT6PVYa8p9xtQ_NU9g8dEaEZz4l2r-YLhBtc__8_XcdyYi9tNulxFzg$, or unsubscribehttps://urldefense.us/v3/__https://github.com/notifications/unsubscribe-auth/AXXIGETOLPQL5MZD7VWX3OTVIKOE3ANCNFSM5T46XM7A__;!!G2kpM7uM-TzIFchu!mII4tPLKYDwPQFozT6PVYa8p9xtQ_NU9g8dEaEZz4l2r-YLhBtc__8_XcdyYi9u5bUJAGg$. You are receiving this because you were mentioned.Message ID: @.***>


To unsubscribe from the SUNDIALS-USERS list: write to: @.***

jianqixi commented 2 years ago

Thank you for your information.

sanliturk commented 2 years ago

You may apply the following search in Github to find related repositories :

https://github.com/search?q=odepack

By using a suitable repository , you may try ODEPACK also ( even with arbitrary precision ) .

The downloadable software is in the following page :

https://computing.llnl.gov/projects/odepack/software ODEPACK: Software

I am sorry , I did not see it .

Mehmet Erol Sanliturk

jianqixi commented 2 years ago

Thank you for your sharing!