Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue with standard_complex_sweep finding solutions. #38

Open
Kgeorge1729 opened this issue Feb 4, 2021 · 2 comments
Open

Issue with standard_complex_sweep finding solutions. #38

Kgeorge1729 opened this issue Feb 4, 2021 · 2 comments

Comments

@Kgeorge1729
Copy link

I'm having some difficulty with the standard_complex_sweep method tracking solutions for a set of polynomials. The issue I'm having is that I'm trying to track the solutions for two system of polynomials simultaneously for a change in parameters. I can track the solutions for one of the polynomials. That is to say that I'm only looking for solutions within a certain range of values for which one polynomial produces a continuum in this range and the other does not despite the fact that I know that these solutions should be present.

The two polynomials I'm trying to solve are as follows:

Pressure polynomials:
1: Q14 - Q46 + Q54;
2: Q25 - Q54 - Q56;
3: Q46 + Q56 - Q63;
Flow polynomials:
1: 0.31684P4 + 3.07780911325921Q14 - 0.31684x;
2: Q46
(3.46301518876535H46 + 1) - (0.7921 - 0.7921H46)(P4 - P6);
3: 0.31684
P5 + 3.07780911325921Q25 + 0.31684x - 0.31684;
4: Q54*(3.46301518876535H45 + 1) - (0.7921 - 0.7921H45)(-P4 + P5);
5: Q56
(3.46301518876535H56 + 1) - (0.7921 - 0.7921H56)(P5 - P6);
6: -P6
(0.7921 - 0.7921H63) + Q63(3.46301518876535H63 + 1);
Ratio polynomials:
1: -Q14 + Q46
r56;
2: Q25r14 - Q54;
3: -Q46 + Q63
r63;
Haematocrit polynomials:
1: H45*(1 - r56) - H46 + 0.6r56;
2: -a45 + r14 - 0.04;
3: -a46 - r14 + 0.96;
4: -H45
r14*(1.0a45 + a46) + 0.6a45;
5: H45r14 + H56(1 - r14) - 0.6;
6: H46r63 + H56(1 - r63) - H63;

Pressure polynomials:
1: Q14 - Q45 - Q46;
2: Q25 + Q45 - Q56;
3: Q46 + Q56 - Q63;
Flow polynomials:
1: 0.31684P4 + 3.07780911325921Q14 - 0.31684x;
2: Q45
(3.46301518876535H45 + 1) - (0.7921 - 0.7921H45)(P4 - P5);
3: Q46
(3.46301518876535H46 + 1) - (0.7921 - 0.7921H46)(P4 - P6);
4: 0.31684
P5 + 3.07780911325921Q25 + 0.31684x - 0.31684;
5: Q56*(3.46301518876535H56 + 1) - (0.7921 - 0.7921H56)(P5 - P6);
6: -P6
(0.7921 - 0.7921H63) + Q63(3.46301518876535H63 + 1);
Ratio polynomials:
1: Q14
r14 - Q45;
2: -Q25 + Q56r56;
3: -Q46 + Q63
r63;
Haematocrit polynomials:
1: -a45 + r14 - 0.04;
2: -a46 - r14 + 0.96;
3: -H45r14(1.0a45 + a46) + 0.6a45;
4: H45r14 + H46(1 - r14) - 0.6;
5: H45*(1 - r56) - H56 + 0.6r56;
6: H46
r63 + H56*(1 - r63) - H63;

The x variable is the one that I'm performing a sweep for for the values between 0.4 to 0.6. The first polynomial system here is the one for which I can obtain values for. For instance when x = 0.505038, the solution to the first polynomial is:
P4: 0.37741144658028 P5: 0.372872011901421 P6: 0.249716541518299
H45:0.338836966697101 H46:0.623717837897984 H56:0.0136621865184432
H63: 0.6 Q14:0.0131383057549933 Q25:0.0125683531387659
Q45:0.00109383337967731 Q46:0.012044472375316 Q56:0.0136621865184432
Q63:0.0257066588937592 r14:0.083255284210568 r56:0.919937165387056
r63: 0.468535114776818 a45:0.043255284210568 a46:0.876744715789432

The complex sweep is able to find this solution but for the second polynomial the solution is:
P4: 0.374835183546721 P5: 0.375468918441703 P6: 0.249695898011577
H45:0.00334358031025163 H46:0.57876743256638 H56:0.624994164006294
H63: 0.6 Q14:0.0134035149182375 Q25:0.012301018863655
Q45:0.000494576360074708 Q46:0.0138980912783122 Q56:0.0118064425035803
Q63:0.0257045337818925 r14:0.0402061297162953 r56:0.964414080309971
r63: 0.540686378373557 a45:0.000206129716295259 a46:0.919793870283705

This solution doesn't appear when performing a complex sweep. One thing that does seem to constantly come up is that I keep getting the following error.

File "", line 1
NaN******
^
SyntaxError: invalid syntax

And one or more of the fields for the solution is filled with NaN********.

Are the sweep functions known to fail tracking some solutions some times or can my system not be solved in this way?

@janverschelde
Copy link
Owner

Thanks for reporting this issue. The sweep was designed to detect singular solutions and then to stop at the first encounter of a singular solutions. The real sweep could compute quadratic turning points well because of its arc-length parameter parametrization, which might not work well enough in a complex sweep. Without seeing the actual script that defines the homotopy, it is difficult for me to write more.

@Kgeorge1729
Copy link
Author

Thank you for the advice. Unfortunately the script is integrated into a program so it will not make sense posting the whole thing but I'll try the real sweep to see if this works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants