GithubHelp home page GithubHelp logo

idaes / idaes-pse Goto Github PK

View Code? Open in Web Editor NEW
209.0 25.0 226.0 106 MB

The IDAES Process Systems Engineering Framework

Home Page: https://idaes-pse.readthedocs.io/

License: Other

Dockerfile 0.02% Jupyter Notebook 0.04% Python 99.87% Shell 0.01% PureBasic 0.06%
process-systems-engineering process-modeling chemical-engineering

idaes-pse's People

Contributors

adam-a-a avatar adowling2 avatar agarciadiego avatar andrewlee94 avatar anujad95 avatar aostace01 avatar blnicho avatar bpaul4 avatar carldlaird avatar chanselm avatar chinexcity avatar dallan-keylogic avatar dangunter avatar elbashandy avatar helgammal avatar jsiirola avatar ksbeattie avatar lbianchi-lbl avatar makaylas avatar mazamarripa avatar menglecmu avatar ooamusat avatar perrenyang avatar pta0001 avatar radhakrishnatg avatar robbybp avatar timbartholomew avatar xiangao1 avatar xiangyuy avatar xinhe-chen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

idaes-pse's Issues

FAQ additions

David Miller suggest that I add the contents or my reply to Tom Flynn's email to a new FAQ section of the docs. See the reply below:


Hi Tom,

These are all good questions, let me take them one at a time...

On 4/14/20 8:25 AM, Flynn, Tom J wrote:

Thank you for the update information. This will be our first update cycle, since we initially installed the software on our computers. We have a couple of questions.

Installation of updates. How often should we update? Is it recommended to update to the latest version each time or can we skip updates. Do the updates have to be installed sequentially or does the latest update version pick up changes from previous updates?

You don't need to update sequentially. Any new update is really a re-install of the entire complete framework. So, the decision if or how often to update is really up to you based on if you need a feature or fix from the new release as described in the release notes, or based on other conversations you may have had with someone in the IDAES org. Hopefully though, upgrading to a new release is easy enough such that you stay up to date with the latest release without too much effort or concern.

How do we install updates. If we install the updates does the new version overwrite the old files? Do we need to install the new version side-by-side the old version.

You can install updates the same way you installed it originally ("conda create", "pip install", etc.). The update, since it really is a re-install, will overwrite the old files of the framework itself, but depending on how you installed and use the framework, it might be more reassuring to install it side-by-side first. Specifically, you will want to make sure that you haven't co-mingled your files using the framework with the framework files themselves. Since you are installing using Anaconda, that's unlikely to be the case. I'm assuming you have your files in a separate folder not within the conda environment (not under the ${CONDA_PREFIX} dir) but under a separate folder structure you created yourself. The very safest approach would be for your files using our framework to be backed up or kept in their repository somewhere for tracking and recovery, but that's entirely up to you.

Are the updates backward compatible i.e., will programs generated on older versions run on the new versions?

We strive that new releases with the same major version number will be backward compatible. That's the first number in a release, which so far for us is only "1". But given how easy it is to have multiple versions installed (when using Anaconda) and the varied and complex ways the framework can be used, the safe approach would be to install side-by-side into a new conda env, confirm your models, etc. still work with the new release and then remove the conda env with the old release when that's proven correct.

Do we need to preserve previous versions on our computers, i.e., install the updates in a new environment? We have installed full Anaconda3.

No, you don't need to preserve them, but again since installing in a new conda environment is pretty cheap and easy, I would recommend taking advantage of the flexibility that Anaconda provides and install new versions of IDAES into new conda environments. (As an IDAES developer and release manager, I literally have dozens of conda envs that I create and remove regularly.)

"pylint -E" discoveries in ui module

If one runs pylint -E ui (after running pip install pylint) you get to see all kinds of fun problems that should probably be fixed or at least looked into. Below is what I'm currently seeing.

************* Module modelvis.hda_reaction
ui/modelvis/hda_reaction.py:56:36: E0602: Undefined variable 'HDAReactionBlock' (undefined-variable)
ui/modelvis/hda_reaction.py:112:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_reaction.py:148:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_reaction.py:149:15: E1101: Instance of 'molar' has no 'molar' member (no-member)
************* Module modelvis.hda_ideal_VLE
ui/modelvis/hda_ideal_VLE.py:56:33: E0602: Undefined variable 'IdealStateBlock' (undefined-variable)
ui/modelvis/hda_ideal_VLE.py:341:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:512:23: E1101: Instance of 'unknown' has no 'optimal' member (no-member)
ui/modelvis/hda_ideal_VLE.py:530:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:623:31: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/hda_ideal_VLE.py:625:38: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/hda_ideal_VLE.py:802:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:803:15: E1101: Instance of 'molar' has no 'molar' member (no-member)
ui/modelvis/hda_ideal_VLE.py:839:15: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/hda_ideal_VLE.py:877:15: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/hda_ideal_VLE.py:962:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:994:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:1007:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:1025:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:1057:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/hda_ideal_VLE.py:1070:4: E0213: Method should have "self" as first argument (no-self-argument)
************* Module modelvis.flowsheetvisdemo.hda_reaction
ui/modelvis/flowsheetvisdemo/hda_reaction.py:56:36: E0602: Undefined variable 'HDAReactionBlock' (undefined-variable)
ui/modelvis/flowsheetvisdemo/hda_reaction.py:112:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_reaction.py:148:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_reaction.py:149:15: E1101: Instance of 'molar' has no 'molar' member (no-member)
************* Module modelvis.flowsheetvisdemo.hda_ideal_VLE
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:56:33: E0602: Undefined variable 'IdealStateBlock' (undefined-variable)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:341:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:512:23: E1101: Instance of 'unknown' has no 'optimal' member (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:530:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:623:31: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:625:38: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:802:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:803:15: E1101: Instance of 'molar' has no 'molar' member (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:839:15: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:877:15: E1101: Instance of 'Var' has no 'value' member; maybe 'values'? (no-member)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:962:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:994:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:1007:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:1025:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:1057:4: E0213: Method should have "self" as first argument (no-self-argument)
ui/modelvis/flowsheetvisdemo/hda_ideal_VLE.py:1070:4: E0213: Method should have "self" as first argument (no-self-argument)

Problems compiling user functions with Mingw (and intel compiler installed?)

This is a user support question, which I can't immediately resolve. I'm putting it in here, so I don't forget to keep on it and also in hopes that someone else knows the answer.

image

It looks like for whatever reason, an extra ia32 -c is getting thrown in. I can't figure out why this is happening. I haven't encountered this before.

The offending makefile is here: https://github.com/IDAES/idaes-pse/blob/master/idaes/property_models/iapws95_lib/Makefile. This is Mingw with MSYS2, following the IDAES install instructions.

macOS Binaries

We need to macOS binaries for completeness in our install instruction coverage. We have ARM64 binaries now is that sufficient? If we need x86_64, how are we going to get there? Maybe GitHub actions without HSL could be a step toward that.


Related issues and PRs:

Originating Error Message

I'm not sure what we can do about this, but while I was working on the PID model, a few times I made a small error, and when I went to run the model I got like 100 pages of error messages, and it was pretty hard to see what went wrong. I think this may have something to do with the way the DAE expansion works.

We should see if there is something we can do to make it fail immediately if there is a problem. If that's not possible, maybe somehow remember the original exception and show that last so it's easier to track down the problem.

I know I wasn't very specific, but I can probably provide concrete examples. You probably know what I'm talking about though. Somehow getting clear error messages is important for usability, I can barely make it out and I almost know what I'm doing and almost understand what's going on with this.

How to read the value of some variables such as get_enthalpy_flow_terms?

I find that the unit model such as Mixer can call get_enthalpy_flow_terms, which is defined as shown below.
def get_enthalpy_flow_terms(self, p):
"""Create enthalpy flow terms."""
return self.flow_mol_phase[p] * self.enth_mol_phase[p]
what I need to do is to read this value for some port, when I use the following method to read this value, m.fs.R101.outlet.get_enthalpy_flow_terms['Vap'], Python gave AttributeError: 'SimplePort' object has no attribute 'get_enthalpy_flow_terms'.
I have found that only the variables defined as the state variable via define_state_vars(self) as shown in the next fig., can be read via m.fs.R101.outlet.temperature[0].value. I guess these variables defined via define_state_vars(self) are global variables, while other variables are local variables, would you like to tell me how to read such local variables, for example, the get_enthalpy_flow_terms value.
image

Missing module for example methanol_synthesis.py

Missing methanol_reaction ,compressor and expander as shown below:
#from methanol_reaction import MethanolReactionParameterBlock
#from compressor import IdealGasIsentropicCompressor
#from expander import Expander

How many config do I need to define a controlvolume?

Hi,
I found that there are too many config when build a unit such as flash or PFR reactor. They share some common config such as "dynamic","material_balance_type", while they have some unique configs, for example the config block of PFR reactor has "reaction_package" .

My question is why the the CONFIG block has an attribution of reaction_package when "reaction_package" has not been declared with the method of CONFIG.declare() for the Flash model. and the value of self.config.reaction_package is None.

Justify the arc labels

In the UI, the labels should be justified so that the variable name is on the left side and the value is on the right side.

Add more than one inlet/outlet to a control volume

I'm trying to define a unit block that has multiple inputs/outputs. How do I construct the balance equation using "ControlVolume0DBlockData" or some basic class else? - It seems the "properties_in" and "properties_out" are only indexed by time in "ControlVolume0DBlockData"?

Validate methods in generic property packages

Currently, the generic property package framework does not validate the methods provided as configuration argument, i.e. a user could provide a method for cp as the method for enthalpy and no issue would be raised.

We should add some method for validating these so that if a method is used for something it wasn't designed for, the user will be informed.

Additional Ipopt Tests

We may want to add a test to be sure ma27 is available in Ipopt to the current Ipopt test. This serve two purposes. It will let users know they don't have the "good" Ipopt. It will also make sure our builds don't come up missing the HSL.

Feature Request: Flowsheet management tools

Copied from https://github.com/IDAES/idaes-private/issues/366

From the May 2018 Stakeholder meeting, one suggestion for a valuable feature was tools for managing flowsheet complexity and specification.

Two suggested tools were:

  • Tool to define levels of complexity at the flowsheet level which can be passed to unit models to adjust level of rigour, without needing to go through and change unit specifications individually.
  • Ability to specify specification sets for unit models for different applications (e.g. a design model might have volume unfixed, but a control model would have volume fixed).

Installation in Ubuntu

We tried to install IDAES in Ubuntu 16.04.
These are the commands that we used:

# This is in the terminal.
$ mkdir dockerDir
$ cd dockerDir
$ touch Dockerfile
# This is in the Dockerfile created just now.
FROM Jupyter/datascience-notebook:latest

RUN conda install --quiet -y glpk==4.65 pyomo==5.7 && \
    conda clean --all -f -y && \
    fix-permissions $CONDA_DIR && \
    fix-permissions /home/$NB_USER

RUN pip install --quiet --no-cache-dir idaes-pse==1.5.1 && \
    fix-permissions $CONDA_DIR && \
    fix-permissions /home/$NB_USER
RUN idaes get-extensions
RUN idaes get-examples
# This is in the terminal.
$ sudo docker build -t jupyter/test-notebook:latest

In the terminal it says successfully installed all of the packages, and also got extensions and examples of idaes.
When we entered JupyterLab, both import pyomo and import idaes work but there is no examples folder, so we cannot do workshops.
We checked the path with the command idaes lib-directory in the terminal of JupyterLab, and entered where it says the files are, but there is still no any files inside the lib folder.

Add conda section to developer docs

The developer docs doesn't cover much wrt conda environments. It should.

@adowling2 points out that we had that topic included in the original install docs (as found in an old copy our install docs "install-docs.pdf" on box).

I'm thinking a short section describing what conda is, why one might want to use it (or perhaps not) could be helpful for developers to know about.

Can IDAES supports solids?

In some case, phase of stream is not only Vap or Liq, but also solid, how to deal with solids in idaes?

Possibility to build all unit models with control volume.

image
Hi, would you like to answer me these questions?
(1)Is that possible to build all the unit models(including columns, separators, heat exchangers, even other complicated unit) using the ControlVolume0DBlock or ControlVolume1DBlock as shown in the picture?
(2)Is that possible to add "add_material_balances"/"add_total_enthalpy_balances"/"add_state_blocks" into the ControlVolume0DBlock in theory, just the same as what "property_package"/"dynamic" does.

Examples for surrogate modeling

Currently in examples-dev and the docs reorganization IDAES/idaes-dev#943, there is only one example for surrogate modeling (one for ALAMO). There are many files in the examples-dev/src/surrogate folder though. Are these examples good for release or was there a reason that they weren't posted?

Problem installing requirement from requirements-dev.txt

When, in a fresh clone of idaes-pse, I try:

pip install -r requirements-dev.txt

I get:

WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0054678610>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/sphinxcontrib-serializinghtml/                                                                                                                                                                 
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0052b13be0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/sphinxcontrib-serializinghtml/                                                                                                                                                                 
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0052b13850>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/sphinxcontrib-serializinghtml/                                                                                                                                                                 
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0052b13220>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/sphinxcontrib-serializinghtml/                                                                                                                                                                 
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0052b139d0>: Failed to establish a new connection: [Errno 101] Network is unreachable')': /simple/sphinxcontrib-serializinghtml/                                                                                                                                                                 
ERROR: Could not find a version that satisfies the requirement sphinxcontrib-serializinghtml (from sphinx->sphinx-rtd-theme>=0.1.9->idaes-pse==1.6.0.dev0->-r requirements-dev.txt (line 12)) (from versions: none)                                                                                                                       
ERROR: No matching distribution found for sphinxcontrib-serializinghtml (from sphinx->sphinx-rtd-theme>=0.1.9->idaes-pse==1.6.0.dev0->-r requirements-dev.txt (line 12))                            

If I comment out the sphinx-rtd-theme requirement in the dev section of setup.py "extras_require", it completes.

Pip install requirments issue

External user email issue:

We wiped the computer clean and reinstalled Ubuntu and Anaconda and all that seemed to work well. However when we executed “pip install ideas-pse” command we received an error “Building wheel for psutil (setup.py)” ……”Failed building wheel for psutil”. Then “Running setup.py clean for psutil error”. So the idaes software installation is not completed.

The python version is 3.7.

On occasion it seems that pip tries to compile some required packages. This isn't necessarily an IDAES problem, but we should try to identify what causes pip to try to compile a package and improve documentation to avoid it.

Modeling extensions - splash page

@adowling2 proposed creating a "splash page" for all the modeling extensions for IDAES. The idea behind this was to have a 3-5 sentence description with a figure for each modeling extension in the user guide (docs/user_guide/modeling_extensions/index.rst).

The things we are considering to be modeling extensions include: all the surrogate tools, matopt, mpc, and caprese.

Please provide this description and image in the user_guide/modeling_extensions/index.rst file. The image should be placed in the docs/_images folder and can be placed in the rst file with the follow:

.. image:: ../../../_images/<image name>.png
    :width: <desired size in pixels (e.g. 600px)>

Linking external property databank to IDAES

Is it possible to link external property databank to IDAES, such as the ChemSep open source database? Rahul Jain et al. have implemented this method in OpenModelica. OpenModelica is also equation oriented. please refer to the paper titled 'Implementation of a Property Database and Thermodynamic Calculations in OpenModelica for Chemical Process Simulation' as well as the 'https://github.com/FOSSEE/OMChemSim/'.

Ps. what's the development status of the column model? If you are familiar with the work of https://github.com/FOSSEE/OMChemSim/, could you please tell me what's the advantage of the IDAES platform? Maybe the solver or other perspectives.

Trace file issue when running ALAMO

I got the following error: AlamoError: Cannot read from trace file "trace.trc": [Errno 2] No such file or directory: 'trace.trc', after running alamopy.alamo(xdata = data,zdata = label). Here my data is a DataFrame, and label is an array. I tried converting data to an array, and label to Series, but it didn't work either. Would you please let me know where to find that "trace.trc" file?

Add last unit models to library

Copied from https://github.com/IDAES/idaes/issues/129

The following needs to be completed before next release (carried over from IDAES/idaes-dev#40):

  • Equilibrium reactor

  • Tray Model

  • Feed Block

  • Feed Block with Flash

  • Product Block

  • Translator Block

  • Ideal property package

  • CEOS property package

  • NRTL property package

  • distillation column model

Documentation will also be required.

Requests for new tutorials/examples

As we are getting more issues asking for new examples and tutorials, I am creating this issue as a master list of all areas identified as needing examples or tutorials. Feel free to add new items to the list as needed, and we can periodically cull things that have been checked off.

Flowsheets

  • Dynamic flowsheets (already have something, but it needs to be better)
  • Nested flowsheets
  • Flowsheets with multiple property packages and translator blocks (#339)
  • Flowsheets with with mixed single and multi phase flows (#339)
  • Debugging over/under constraints (P)DAE models: (see Pyomo/pyomo#3016)

Unit Models

  • Examples for each type of model (#9)
  • Custom unit models

Properties

  • Custom property packages (#9, IDAES/idaes-dev#675 )
  • Examples of using cubic equations of state

docker jupyter/minimal-notebook package requirement problems (python 3.8?)

When trying to build the idaes/jupyterhub docker container, it fails with the following problem (this is just the beginning of a very large output):

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  - alembic -> python[version='>=3.8,<3.9.0a0']
  - bleach -> python[version='>=3.8,<3.9.0a0']
  - jinja2 -> python[version='>=3.8,<3.9.0a0']
  - jupyterlab_server -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.8,<3.9.0a0|3.4.*']
  - mako -> python[version='>=3.8,<3.9.0a0']
  - oauthlib -> python[version='>=3.8,<3.9.0a0']
  - prometheus_client -> python[version='>=3.8,<3.9.0a0']
  - pygments -> python[version='>=3.8,<3.9.0a0']
  - python-dateutil -> python[version='>=3.8,<3.9.0a0']
  - python-json-logger -> python[version='2.7.*|3.5.*|3.6.*']
  - testpath -> python[version='3.4.*|>=3.8,<3.9.0a0']

Your python: python=3.7
...

Note entirely sure what to do here. It looks like idaes/jupyterhub has pyton 3.7 but that is incompatible with several packages we try to install, as they want 3.8. I suppose we could try fixing them all to earlier 3.7 friendly versions or move to 3.8?

I discovered this while working on PR IDAES/idaes-dev#760 but it happens independent of that change.

support of Mac OS

I find that Mac OS is Not supported by ideas. is it possible to let it be supported.

IDAES Model installation issue to see vis file

Hi,

I have followed all the steps in the website from IDAES to jupyterlab installtion.
Finally, I could run flowhseet_vis_demo.jpynb and generated demoflowsheet.idaes.vis file.
But, if I double click it it shows only code not the flowsheet.
Could you please advise what should I do more?
KakaoTalk_20200401_115934343

Convergence evaluation feature requests

The Convergence evaluation code will be pushed soon. This issue is here to collect some feature requests for the tool.

To-do:

  • Modify the command line tool to support calling a single sample point. This would be useful for testing failed cases - will need to turn off the code that captures output so it is shown.
  • Add another callback between get_initialized_model and the solve. This would allow the test writer to have some special code that ensures the model is consistent. One good example given was compositions. One could specify the N-1 compositions and then compute the Nth in this method (or normalize) before calling solve.
  • allow statistics output in json format (for archive and analysis)
  • replace printing with IDAES logging
  • get the command-line interface (convergence.py) correctly installed with setup.py
  • make sure the pytests are being picked up by the main testing harness
  • test with different versions of Python (only tested on 3.6 now)
  • add tests for the CLI that pass arguments to the arg parser.

Related issues:

ASL install has errors

When I follow the instruction for a full Windows install of IDAES here, I get errors when installing ASL.

When I run this code:

wget https://ampl.com/netlib/ampl/solvers.tgz
tar -zxvf solvers.tgz
cd solvers
./configure
make

I get the following error after the final line of code (make):

$ make
cd ${OBJDIR=sys.`uname -m`.`uname -s`}; make
make[1]: Entering directory '/c/Users/miles/src/solvers/sys.x86_64.MSYS_NT-10.0-17763'
gcc -c -O -DNO_RUSAGE -DASL_NO_FPINITMT fpinit.c
make[1]: gcc: Command not found
make[1]: *** [makefile:234: arith.h] Error 127
make[1]: Leaving directory '/c/Users/miles/src/solvers/sys.x86_64.MSYS_NT-10.0-17763'
make: *** [makefile:2: amplsolver] Error 2

Also, I thought I should note that I noticed a few other errors in the installation documentation.

  • You don't seem to mention the need to install wget
  • After creating the src folder with MSYS2 you cannot simply type cd src to get to that folder. You instead need to put in the full path.
  • when I forked IDAES from GitHub, the cloned directory is named idaes-pse rather than idaes_pse as referenced in the documentation.

A couple of these errors are extremely minor, but figured you may want to edit them.

Extend model statistics tools

Stems for issue IDAES/idaes-dev#102

There are some ideas for additional model statistics that we should add to statistics utility methods.

  • Number of nonlinear terms
  • Types of nonlinear terms
  • Places for possible domain errors (e.g. log(x) where the lower bound of x is not positive)

idaes/dmf/tests/test_surrmod.py::test_run fails

With ALAMO installed, I'm seeing the following test failure:

$ pytest -v --tb=no idaes/dmf/tests/test_surrmod.py::test_run
================================================== test session starts ==================================================
platform linux -- Python 3.7.7, pytest-5.4.3, py-1.9.0, pluggy-0.13.1 -- /home/ksb/anaconda3/envs/idaes-dev/bin/python
cachedir: .pytest_cache
rootdir: /home/ksb/Projects/IDAES/github/IDAES/idaes-dev, inifile: pytest.ini
collected 1 item                                                                                                        

idaes/dmf/tests/test_surrmod.py::test_run FAILED                                                                  [100%]
[test_surrmod.py::test_run.txt](https://github.com/IDAES/idaes-dev/files/4963649/test_surrmod.py.test_run.txt)

================================================ short test summary info ================================================
FAILED idaes/dmf/tests/test_surrmod.py::test_run - idaes.dmf.errors.AlamoError: ALAMO Error:  ************************...
=================================================== 1 failed in 3.44s ===================================================

The full output of the test is here: test_surrmod.py::test_run.txt

IDAES install on Ubuntu 19.10

Hi
I have followed the instructions with pip3 install idaes-pse, idaes get-extensions, set PATH to (in my case) /home/allan/.local/bin but when I run the test, I get the following errors:

  File "/home/allan/.local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 152, in exec_module
    exec(co, module.__dict__)
  File "/home/allan/anaconda3/lib/python3.7/site-packages/hypothesis/__init__.py", line 26, in <module>
    from hypothesis.core import example, find, given, reproduce_failure, seed
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/home/allan/.local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 152, in exec_module
    exec(co, module.__dict__)
  File "/home/allan/anaconda3/lib/python3.7/site-packages/hypothesis/core.py", line 67, in <module>
    from hypothesis.internal.conjecture.engine import ConjectureRunner, sort_key
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/home/allan/.local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 152, in exec_module
    exec(co, module.__dict__)
  File "/home/allan/anaconda3/lib/python3.7/site-packages/hypothesis/internal/conjecture/engine.py", line 41, in <module>
    from hypothesis.internal.conjecture.pareto import NO_SCORE, ParetoFront, ParetoOptimiser
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/home/allan/.local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 152, in exec_module
    exec(co, module.__dict__)
  File "/home/allan/anaconda3/lib/python3.7/site-packages/hypothesis/internal/conjecture/pareto.py", line 22, in <module>
    from hypothesis.internal.conjecture.shrinker import sort_key
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/home/allan/.local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 152, in exec_module
    exec(co, module.__dict__)
  File "/home/allan/anaconda3/lib/python3.7/site-packages/hypothesis/internal/conjecture/shrinker.py", line 1447, in <module>
    @attr.s(slots=True, eq=False)
TypeError: attrs() got an unexpected keyword argument 'eq'

I was unable to install libgfortran3 on this distro and instead installed libgfortran9 which is the default.

Any help please.

Cheers

Is there a method to treat zero flow for some species in a flowsheet?

I just take an example to illustrate the problem: In a flowsheet, there are nine species for the whole flowsheet, but there are only five species in the first unit, that is there are 4 species in the first unit having zero flow. unfortunately, phase equilibrium should be considered in the first unit, which will cause some problem in the activity coefficient properties equations, namely zero flow will cause many numerical problem, such as 1/0, log(0),0^0.5 and so on. is there some good method to deal with this problem?

I have another question. how to initialize properties package, is there something like m.fs.unit.initialize()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.