Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
precsim committed Aug 15, 2021
1 parent bef8059 commit c75b644
Show file tree
Hide file tree
Showing 14 changed files with 230 additions and 2 deletions.
64 changes: 62 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,62 @@
# scientific-app-framework-for-python
Scientific Application Framework for Python [Prototype]
Scientific Application Framework for Python
===========================================

![Python Scientific App Example Screenshot](https://raw.githubusercontent.com/precise-simulation/scientific-app-framework-for-python/master/scientific-app-framework-screenshot.jpg)

About
-----

This is prototype and redevelopment of the [FEATool
Multiphysics](https://www.featool.com) MATLAB® framework for
scientific applications, physics and CAE simulations in Python.

The main goal is to make scientific applications and simulations easy
and accessible for users, as well as fast and easy to design and build
for application developers.

Features
--------

- Fast, easy, and definition and layout of dialogs and graphical user
interface (GUI) by using [XML
definitions](https://github.com/precise-simulation/scientific-app-framework-for-python/tree/master/gui
layout examples).
- Automatic creation and layout of dialogs for functions and
objects. For example, the command `dlg(Block)` will read the
signature of the Block class, automatically create a corresponding
dialog box, and create the object with selected parameters when
pressing _OK_.
- Fully integrated Python scripting console.
- Automatic GUI playback functionality. Play back models as automated
tutorials.
- 1-to-1 mapping between GUI and command line interface (CLI). Each
GUI command and action has an equivalent CLI function call which is
shown and logged in the console.
- Different dedicated application modes such as geometry (CAD), mesh
generation, physics, solvers, postprocessing.
- Save and load models in equivalent binary formats and Python scripts.

Availability
------------

A prototype (work in progress) binary executable of the framework,
with a CAD Geometry mode is available for Windows in the [repository
releases](https://github.com/precise-simulation/scientific-app-framework-for-python/releases/latest).

License
-------

The binary is made available for personal evaluation and trial use
only. Please get in touch with [_Precise
Simulation_](https://www.precisesimulation.com#contact) if you would
like a custom scientific application built, or is interested in
licensing the framework.


(C) Copyright 2021 by Precise Simulation Ltd. All Rights Reserved.

FEATool™ and FEATool Multiphysics™ are trademarks of Precise
Simulation Limited. MATLAB® is a registered trademark of The
MathWorks. All other trademarks are the property of their respective
owners. Precise Simulation Limited and its products are not affiliated
with, endorsed, sponsored, or supported by these trademark owners.
24 changes: 24 additions & 0 deletions gui layout examples/00-test.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<vbox title="Block" flex="1">
<grid rows="1 1 1 1 1 1 1 " cols="-1 1" padx="5 0">
<label text="xmin"/>
<label text="xmax"/>
<label text="ymin"/>
<label text="ymax"/>
<label text="zmin"/>
<label text="zmax"/>
<label text="tag"/>
<edit text="1" id="xmin"/>
<edit text="2" id="xmax"/>
<edit text="3" id="ymin"/>
<edit text="4" id="ymax"/>
<edit text="5" id="zmin"/>
<edit text="6" id="zmax"/>
<edit text="B2" id="tag"/>
</grid>
<hbox flex="0">
<spacer flex="1"/>
<button text="OK" flex="-1"/>
<button text="Cancel" flex="-1"/>
<!-- <sizegrip/> -->
</hbox>
</vbox>
5 changes: 5 additions & 0 deletions gui layout examples/01-vbox.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vbox title="vbox">
<button text="btn 1" id="btn1"/>
<button text="btn 2" id="btn2"/>
<button text="btn 3" id="btn3"/>
</vbox>
5 changes: 5 additions & 0 deletions gui layout examples/02-hbox.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<hbox title="hbox">
<button text="btn 1" id="btn1" flex="1"/>
<button text="btn 2" id="btn2" flex="2"/>
<button text="btn 3" id="btn3" flex="3"/>
</hbox>
13 changes: 13 additions & 0 deletions gui layout examples/03-grid.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<grid title="grid" style="box" rows="1 1 1" columns="1 3">
<button text="btn 1" id="btn1"/>
<check text="chk 2" id="chk2"/>
<radio text="rad 3" id="rad3"/>

<label text="label 1" id="lab2"/>
<edit text="edit 1" id="edi3"/>
<popup text="popup 1" id="pop3">
<item text="item 1"/>
<item text="item 2"/>
<item text="item 3"/>
</popup>
</grid>
8 changes: 8 additions & 0 deletions gui layout examples/04-place.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<grid title="place" rows="1 1 1" columns="1 2 3">

<button text="btn 1" id="btn1" row="0" col="0"/>
<button text="btn 2" id="btn2" row="1" col="0" colspan="3"/>
<button text="b3" id="b3" row="0" col="1"/>
<button text="btn 4" id="btn4" row="2" col="2"/>

</grid>
17 changes: 17 additions & 0 deletions gui layout examples/05-space.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<grid title="space" padx="20">
<grid title="space" rows="1 1 1" columns="1 1 1" padx="20" pady="2">

<button text="btn 1" padx="5" pady="5"/>
<button text="btn 2"/>
<button text="btn 3"/>

<button text="btn 4" ipady="22"/>
<button text="btn 5" padx="10" pady="15"/>
<button text="btn 6"/>

<button text="btn 7"/>
<button text="btn 8"/>
<button text="btn 9" padx="5" pady="5"/>

</grid>
</grid>
41 changes: 41 additions & 0 deletions gui layout examples/06-dialog.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<vbox title="dialog" flex="1">

<vbox flex="1">

<hbox title="Frame 1" flex="0" padx="2" pady="3">

<button text="button 1" id="btn1" ipadx="10" ipady="0"/>
<combo flex="1" id="combo1">
<item text="item 1"/>
<item text="item 2"/>
<item text="item 3"/>
</combo>
<radio text="radio 3"/>

</hbox>


<hbox flex="1" title="Frame 2" padx="1" pady="1">

<list flex="2" id="combo1">
<item text="item 1"/>
<item text="item 2"/>
<item text="item 3"/>
</list>
<textbox text="edit 1" flex="1"/>

</hbox>


<hbox flex="0">

<spacer flex="1"/>
<button text="OK" flex="-1"/>
<button text="Cancel" flex="-1"/>
<sizegrip/>

</hbox>

</vbox>

</vbox>
13 changes: 13 additions & 0 deletions gui layout examples/07-menus.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vbox title="menus" width="640" height="480">

<menu label="label1">
<item label="1"/>
<item label="2"/>
</menu>

<menu label="label2">
<item label="3"/>
<item label="4"/>
</menu>

</vbox>
9 changes: 9 additions & 0 deletions gui layout examples/08-vpane.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<grid title="vpane" width="640" height="300" rows="1" cols="1">

<vpane>
<button flex="10" text="btn 1"/>
<button flex="2" text="btn 2"/>
<button flex="1" text="btn 3"/>
</vpane>

</grid>
6 changes: 6 additions & 0 deletions gui layout examples/09-commands.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<vbox title="commands">
<button text="cmd 1" id="cmd1" command="f_close_window"/>
<button text="cmd 2" id="cmd2" command="lambda: print('cmd2')"/>
<button text="cmd 3" id="cmd3"/>
<!-- <button text="cmd 3" id="cmd3" command="error_fcn_not_found"/> -->
</vbox>
10 changes: 10 additions & 0 deletions gui layout examples/10-block.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<block type="dlg">
<type text="type" default="block"/>
<tag text="tag" default="B1"/>
<xmin text="x_{min}" default="0"/>
<xmax text="x_{max}" default="1"/>
<!-- <ymin text="y_{min}" value="" default="0" type="double"/> -->
<!-- <ymax text="y_{max}" value="" default="1" type="double"/> -->
<!-- <ymin text="y_{min}" value="" default="0" type="double"/> -->
<!-- <ymax text="y_{max}" value="" default="1" type="double"/> -->
</block>
17 changes: 17 additions & 0 deletions gui layout examples/11-applayout.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<hbox title="dialog" width="640" height="300" flex="1">

<vbox title="Tools">
<button text="Block" id="btn1"/>
<button text="Cylinder" id="btn2"/>
<button text="Sphere" id="btn3"/>
</vbox>

<vbox>
<vbox title="View" id="view">
<spacer/>
</vbox>

<frame title="Terminal" id="term"/>
</vbox>

</hbox>
Binary file added scientific-app-framework-screenshot.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c75b644

Please sign in to comment.