CMSlv: Difference between revisions

From ASCEND
Jump to navigation Jump to search
Restored page from Google Cache, uploaded by John Pye
 
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| class="wikitable"
{{solvers}}
|-
{{stub}}
!  '''[[NLA]]'''
This is the [[conditional modelling]] solver implemented by Vicente Rico-Ramirez<ref>http://ascend.cheme.cmu.edu/ftp/pdfThesis/victhesis.pdf</ref>.  Currently this solver is fully operational -- it solves the sample models given in Vicente's thesis, and these have been incorporated in the the [[TestSuite]]. You need to have [[CONOPT]] installed before CMSlv will work; it's used as part of the boundary-crossing algorithm. CMSlv also makes use of a subsidiary logical-expression-solvers called [[LRSlv]].
|-
|  '''[[QRSlv]]'''
|-
|  '''<strong class="selflink">CMSlv</strong>'''
|-
|  '''[[IPSlv]]'''
|-
|  '''[[Opt]]'''
|-
!  '''[[NLP]]'''
|-
|  '''[[CONOPT]]'''
|-
|  '''[[IPOPT]]'''
|-
|  '''[[TRON]]'''
|-
|  '''[[MINOS]]'''
|-
|  '''[[NGSlv]]'''
|-
|  '''[[OptSQP]]'''
|-
!  '''[[DAE]]/[[ODE]]'''
|-
|  '''[[IDA]]'''
|-
|  '''[[LSODE]]'''
|-
|  '''[[DOPRI5]]'''
|-
!  '''[[LA]]'''
|-
|  '''[[linsolqr]]'''
|-
|  '''[[linsol]]'''
|-
!  '''[[LP]]'''
|-
|  '''[[MakeMPS]]'''
|-
!  '''[[Logic_Solvers|Logic]]'''
|-
|  '''[[LRSlv]]'''
|}
<div class="notice metadata" id="stub">''This article is a '''stub'''. You can help out by <span class="plainlinks">[http://ascendwiki.cheme.cmu.edu/index.php?title=CMSlv&action=edit expanding it]</span>. ''</div>
 
This is the [[conditional modelling]] solver implemented by Vicente Rico-Ramirez<sup id="_ref-0" class="reference"><a href="#_note-0" title="">[1]</a></sup>.  Currently this solver is fully operational -- it solves the sample models given in Vicente's thesis, and these have been incorporated in the the [[TestSuite]]. You need to have [[CONOPT]] installed before CMSlv will work; it's used as part of the boundary-crossing algorithm.
 


[[File:cmslv.png|thumb|500px|none|Implementation of CMSlv (from Vicente Rico-Ramirez' thesis, see our [[publications]]).]]


== Example ==
== Example ==
Line 57: Line 9:
Here is an extract of a full example called {{src|models/linmassbal.a4c}}:
Here is an extract of a full example called {{src|models/linmassbal.a4c}}:


<source lang="a4c">(* Boundaries *)
<source lang="a4c">
  (* Boundaries *)
   CONDITIONAL
   CONDITIONAL
       cond1: Fmain &lt;= B[1];
       cond1: Fmain <= B[1];
 
       cond2: Fmain >= B[2];
       cond2: Fmain &gt;= B[2];
   END CONDITIONAL;
   END CONDITIONAL;


Line 69: Line 21:
   (* Variant Equations *)
   (* Variant Equations *)
   eq1a: Fsub1 = a[1] * Fmain;
   eq1a: Fsub1 = a[1] * Fmain;
   eq1b: Fsub2 = b[1] * Fmain;
   eq1b: Fsub2 = b[1] * Fmain;
   eq2a: Fsub1 = a[2] * Fmain;
   eq2a: Fsub1 = a[2] * Fmain;
   eq2b: Fsub2 = b[2] * Fmain;
   eq2b: Fsub2 = b[2] * Fmain;
   eq3a: Fsub1 = a[3] * Fmain;
   eq3a: Fsub1 = a[3] * Fmain;
   eq3b: Fsub2 = b[3] * Fmain;
   eq3b: Fsub2 = b[3] * Fmain;


   (* Disjunctive Statements *)
   (* Disjunctive Statements *)
   WHEN (bol1,bol2)
   WHEN (bol1,bol2)
       CASE TRUE,FALSE:
       CASE TRUE,FALSE:
           USE eq1a;
           USE eq1a;
           USE eq1b;
           USE eq1b;
       CASE FALSE,FALSE:
       CASE FALSE,FALSE:
           USE eq2a;
           USE eq2a;
           USE eq2b;
           USE eq2b;
       CASE FALSE,TRUE:
       CASE FALSE,TRUE:
           USE eq3a;
           USE eq3a;
           USE eq3b;
           USE eq3b;
   END WHEN;</source>
   END WHEN;
</source>


== References ==
== References ==
<references/>


 
[[Category:NLA Solvers]]
 
[[Category:Solvers]]
[[Category:Stubs]]

Latest revision as of 10:54, 1 April 2015

NLA
QRSlv
CMSlv
IPSlv
NLP
CONOPT
IPOPT
TRON
MINOS
Opt
NGSlv
DAE/ODE
IDA
LSODE
DOPRI5
RADAU5
LA
Linsolqr
Linsol
LP
MakeMPS
Logic
LRSlv

This is the conditional modelling solver implemented by Vicente Rico-Ramirez[1]. Currently this solver is fully operational -- it solves the sample models given in Vicente's thesis, and these have been incorporated in the the TestSuite. You need to have CONOPT installed before CMSlv will work; it's used as part of the boundary-crossing algorithm. CMSlv also makes use of a subsidiary logical-expression-solvers called LRSlv.

Implementation of CMSlv (from Vicente Rico-Ramirez' thesis, see our publications).

Example

Here is an extract of a full example called models/linmassbal.a4c:

  (* Boundaries *)
  CONDITIONAL
      cond1: Fmain <= B[1];
      cond2: Fmain >= B[2];
  END CONDITIONAL;

  bol1 == SATISFIED(cond1,1e-08{lb_mole/hour});
  bol2 == SATISFIED(cond2,1e-08{lb_mole/hour});

  (* Variant Equations *)
  eq1a: Fsub1 = a[1] * Fmain;
  eq1b: Fsub2 = b[1] * Fmain;
  eq2a: Fsub1 = a[2] * Fmain;
  eq2b: Fsub2 = b[2] * Fmain;
  eq3a: Fsub1 = a[3] * Fmain;
  eq3b: Fsub2 = b[3] * Fmain;

  (* Disjunctive Statements *)
  WHEN (bol1,bol2)
      CASE TRUE,FALSE:
          USE eq1a;
          USE eq1b;
      CASE FALSE,FALSE:
          USE eq2a;
          USE eq2b;
      CASE FALSE,TRUE:
          USE eq3a;
          USE eq3b;
  END WHEN;

References