Meetings with Brian
This doc will contain the reported issues, questions, feature requests and suggestions sent to Brian from Collimator.
To report
Questions
03/21/2023
- How to export or save the Collimator model as a file?
BRIAN: User's can not save or export the model to a file. Even if they did, the model file won't be compatible with any environment other than Collimator.ai. Brian sent us a saved file of the BSM2 model which can later be uploaded to a collimator account if needed. (with help with Brian again)
Feature requests and suggestions
Issues
10/19/2022
Follow up on importing python file into Collimator issue.
PAVAN It is working now.
Requested an example of a python initialization script.
PAVAN The script can initilize Collimator global parameters (model parameters) as following:
design_Kd = 0.1
10/17/2022
How to install addtional python modules
Feature has to be enabled in our account.
Then install the package inside a python script like this.import os
os.system('pip install tsai')How to make a block a part of library pane or how to copy and paste a block outside the current working model.
BRIAN: Yes. This feature is in beta and I can enable it for you.
PAVAN: This beta feature has to be enabled in the account. The submodules we create here will be added to the block panel.

How to have static variables in python that is retained throughout simulation.
BRIAN: The best way to implement this is with a unit delay block. Feed the last values back into the block as inputs.
PAVAN: There isn't a method to keep variables in memory between simulation ticks. We have to either make use of Unit_delay, delay or clock blocks to do that or we can save variables to a file(eg. pkl) everytime and read it back.How much computing power collimator runtime has?
BRIAN: Collimator’s base computing power is: 2v CPUs + 4GB of RAM. However for AI applications I’ve been switching my simulations to use a GPU. I have lane keeping algorithm doing video processing with a deep learning algorithm and have that portion of the modeling running on a GPU while the rest of the model runs on the CPU. The instance type for your model can be changed as well to anything AWS offers. I’ve been using AWS’s g5.xlarge which provides 1 GPU and 4v CPUs + 16 GB of RAM for my AI applications. I can walk you through my model when you have free time, so you can see how it all works.
PAVAN: This is a paid feature. We can get any AWS instance. Make a request to Brian to get that enabled.We don't see the option to create a notebook in Collimator as in this guide anymore. Has the method to create a notebook changed?
We’ve found most people prefer using an external notebook (Google Co-lab or Deepnote being the most popular ones). That is now the default but I’ve changed your user settings to put the button back.
PAVAN: Notebook feature is enabled again in our accounts.How to import a local python file into collimator? (If this is possible it would be easier to define global parameters and define reusable functions)
BRIAN: Upload data file (something .py) you can then set that as your init script. The init script python file will only run once at startup. I can provide an example.
PAVAN: Gave an error in myside. Has to follow up with Brian on the fix.
PAVAN It is fixed now (10/19/2022)Write to CSV block
BRIAN: We have to use a python block or notebook to do this.
How does the version control in Collimator work
BRIAN: It saves the work every 1 minute or every 3 events (or single major event) from whichever comes first
- Does it support git? BRIAN: Not at the moment. However, generated C code will be pushed to git in future.
Feature requests and suggestions
- The arrows to collapse the left and right panes are not directly visible. It might be better to have them in the center.
01/27/2023
Q&A
List of requested features
a. Ability to read model defined parameter within the python script block
Brian: it is in progress.
b. Ability to update submodel parameter from the notebook using collimator python-api
Brian: it is in in progress.
c. Provide a menu option or script to convert old submodel block to the current submodel block
Brian: The easy way is people from Collimator will be the one who convert them for us.
d. Ability to handle algebraic loop problem (the unit delay block uses global step and does not address the problem)
e. Ability to search for a model/file in the project folder
Brian: it is not in their agenda.
f. A way to organize different files present inside the project folder (subfolders?)
Brian: it is in progress.
g. Ability to save runs? If a simul takes 3 hrs to finish, and you forget to save the results, will collimator have the ability to save those results?
Brian: Collimator has a box icon at the top right corner where you can see the results from the last three days.
Marketplace mechanism, if GQC creates custom blocks inside Collimator, what would the licensing mechanism be? Where would those blocks get hosted
Brian: No one has done this before. He will have to ask Kevin.
We want to have a shiny interface to the Collimator model and results that would be similar to the SCADA HMI. How would we go about doing that?
Brian: Possible.
Other notes
- Any discrete block will follow the time simulation using global discrete clock time.There is probably a discrete block somewhere in our model.
- Global discrete clock tick is for discrete blocks.
- Continuous solver setting is for continuous blocks.
- Interpolation in datasource reader block:
- Zero order hold is used if we know that sensor reads the data at a given time interval.
- Linear can be used if the we know that sensor is continuously giving us the data without a specific time step.
- Our current implementation using zero order hold for interpolation is correctly because the data is read for every 15 minutes.
- Deven mentioned that the high computation time might be because we have to use the value of variable from the previous 12 time steps to predict the next variable and suggested the possibility of using GPU to speed up the computing time.
- The graph for primary clarifier for effluent is incorrect. Will need to check the notebook to fix the problem.
Next steps
- Sudhir suggested running the model (physical model version) with global discrete = 0.14 and global discrete = 0.014 as an experiment.
- For end time =2 and global discrete = 0.14, the simulation time = 3256.67 sec.
- For end time =2 and global discrete = 0.014, the simulation time = 3422.87 sec.
- There is different in simulation time when we change the global discrete time. However, the diagram shown after the simulation shows that there is no discrete block in the our model.
- Meet with Deven how he is planning to create multivariate to univariate model and create a submodel block to handle multivariate to univariate prediction model.
- our current AI model could not capture values of variables Xi, Xbh, Xp and TSS at their right magnitude.