scilab · pdf filescilab consortium. the free and open ... – add functionalities to...
TRANSCRIPT
The free and open source software for numerical computation
Scilab Interaction with other software
June 29th 2011
Allan CORNET & Sylvestre LEDRUScilab Consortium
The free and open source software for numerical computation
Interaction to make Scilab the reference in numerical computation
● In interacting with new application fields,
● In acquiring new functionalities,
● In facilitating the communication, exchange and collaboration with other software,
● In integrating the results of the most recent scientific breakthroughs in the field of numerical computation.
The free and open source software for numerical computation
Key Advantages
● For Scilab Users:
– No need to learn another software,
– Adapt and use the software according to their needs,
– Develop exchanges and facilitate collaboration among different users communities.
● For Scilab Software:
– Give access to Scilab features from another software and vice versa,
– Add functionalities to Scilab in several areas,
– Enhance the scope of use of Scilab.
The free and open source software for numerical computation
Interactiondeveloped by Scilab Consortium
The free and open source software for numerical computation
The free and open source software for numerical computation
Scilab and LabVIEW®LabVIEW is a trademark of National Instruments
The free and open source software for numerical computation
Scilab and LabVIEW®
● Gateway jointly developed by National Instruments and the Scilab
Consortium
● Allow to access to Scilab from LabVIEW
● Upraising the specter of both software
● Facilitate collaboration between the two communities of users
● Avoid lengthy and expensive code rewriting
The free and open source software for numerical computation
Integrate Scilab scripts to LabVIEW®
The free and open source software for numerical computation
● Implement equations or textual
algorithms in Scilab node
● Define your inputs/outputs
variables
● Connect inputs/outputs.
Maths with Scilab node
The free and open source software for numerical computation
Scilab and Excel® Excel is a trademark of Microsoft Corporation
The free and open source software for numerical computation
Control Excel® from Scilab
• xls_link: http://atoms.scilab.org/toolboxes/xls_link
• Take the control of Excel® from Scilab:• // Call a new instance of Excel• r = xls_NewExcel();• // Create a Workbook• xls_AddWorkbook();• // Set Worksheet 1 (visible on)• xls_SetWorksheet(1);• // set visible excel windows• xls_SetVisible(%t);• // send data to excel• xls_SetData("A2", eye(10,10))• // get data from excel• M = xls_GetData(xls_CalculateRange("A2",[10,10]))
The free and open source software for numerical computation
Using Scilab as an Add-in in Excel®
● Scilab XLLhttp://atoms.scilab.org/toolboxes/Scilab_XLL
● Scilab XLL connects Excel® spreadsheet software with Scilab workspace. With Scilab XLL, you can exchange data between Scilab and Excel
● SLEvalString: evaluate command in Scilab software
● SLGetMatrix: write contents of Scilab matrix to Excel worksheet
● SLPutMatrix: create or overwrite Scilab matrix with data from Excel worksheet
The free and open source software for numerical computation
OLE/COM Client for Scilab (beta)
• Automation module for Scilab:
http://forge.scilab.org/index.php/p/ole
• Provide a Component Object Model Client to call and interoperate with code written in any other language (COM aware)
• COM is one of the main ways to glue applications and components together on Windows platforms.
The free and open source software for numerical computation
OLE/COM Client for Scilab (beta)
Example
We call VBScript from Scilab :
• pScript = ole_actxserver('MSScriptControl.ScriptControl')
• ole_set(pScript, 'Language', 'VBScript')
• ole_invoke(pScript,'Eval','MsgBox(""Hello world"")') ;
• ole_invoke(pScript,'Eval','68 + 1')
• ole_delete(pScript)
The free and open source software for numerical computation
Interactiondeveloped by our partners
The free and open source software for numerical computation
The free and open source software for numerical computation
Scilab and modeFRONTIER® modeFRONTIER is a trademark of Esteco s.r.l.
The free and open source software for numerical computation
modeFRONTIER®
● Developed by Esteco
● modeFRONTIER is a multidisciplinary and multi-objective software written to allow easy coupling to almost any computer aided engineering (CAE) tool,
● Mainly used in:
– Integration,
– Optimization,
– Post-processing.
The free and open source software for numerical computation
Scilab and modeFRONTIER®
● Gateway developed by Esteco and supported by EnginSoft France
● Scilab node: Edit and execute Scilab scripts from modeFRONTIER
● External Scheduler Bridge:
– Use Scilab as an external solver/optimizer,
– Transparently handle the communications between Scilab and the modeFRONTIER workflow.
The free and open source software for numerical computation
Scilab and Isight®Isight is a trademark of Dassault Systèmes
The free and open source software for numerical computation
Isight®
● Developed by Dassault Systèmes
● Open desktop solution for simulation process automation and design optimization from SIMULIA, the Dassault Systèmes brand for realistic simulation.
The free and open source software for numerical computation
Scilab and Isight®
● Gateway jointly developed by Dassault Systèmes and the Scilab Consortium within CSDL project (Systematic Paris-Région Competitiveness Cluster) on-going development
● Scilab activity: edit and execute Scilab scripts from Isight
● Approximation module: interface Scilab modeling tools to Isight
● Optimization module: interface Scilab optimization algorithms to Isight
The free and open source software for numerical computation
Scilab and DAKOTA®DAKOTA is a trademark of Sandia Corporation
The free and open source software for numerical computation
DAKOTA®
● Developed by the Sandia National Laboratories
● DAKOTA is a Multilevel Parallel Object-Oriented Framework for design optimization, parameter estimation, uncertainty quantification, and sensitivity analysis.
The free and open source software for numerical computation
Scilab and DAKOTA®
● GSOC 2011 project / Partnership with Hutchinson
● Scilab called by DAKOTA for DOE, modeling, optimization…
● External interface: file communication
● Internal interface: memory communication
DAKOTA
SCILAB
params.in
result.out
f.sci – fp.sci – fpp.sci
dakscilabconfig.i
n
config.in
DAKOTA
SCILAB
structure.sci
The free and open source software for numerical computation
How to make interaction possible?
The free and open source software for numerical computation
The free and open source software for numerical computation
call_scilab: Scilab as a computing engine
• Access to Scilab features from native code (ie thirdparty application)
• C or C++ API. Similar syntax to api_scilab
• Send and retrieve Scilab variables to/from Scilab
ScilabEngine
Call_Scilab Application
The free and open source software for numerical computation
call_scilab: Example
0001 /* 0002 * Write a matrix into Scilab0003 * B=[1 4 2 3; 0004 * 3 9 8 2 ]0005 * Note that it is done column by column0006 */ 0007 double B[] = { 1,3,4,9,2,8,3,2} ; /* Declare the matrix */
0008 int rowB = 2, colB = 4; /* Size of the matrix */0009 char variableNameB[] = ”B”;0010 0011 /*0012 * Write it into Scilab’s memory 0013 */0014 createNamedMatrixOfDouble(pvApiCtx,variableNameB,rowB,colB, B);0015 0016 printf(”Display from Scilab of B:\ n”);0017 SendScilabJob(”disp(B);”); /* Display B *
Display from Scilab of B: 1. 4. 2. 3. 3. 9. 8. 2.
C code: Final output:
The free and open source software for numerical computation
javasci: Scilab as a computing engine for Java
• Access to Scilab features from Java
• Based on call_scilab
• New version introduced in Scilab 5.3.0
• Provide mapping of Scilab variables in Java
• Send and retrieve Scilab variables to/from Scilab
ScilabEngine
Javasci Application
The free and open source software for numerical computation
Javasci v2: Example
Java code:0001 // A simple Java example with javasci v20002 // Filename: DisplayPI.java0003 0004 import org.scilab.modules.javasci.Scilab;0005 import org.scilab.modules.types.ScilabType;0006 import org.scilab.modules.types.ScilabDouble;0007 0008 class Example1 { 0009 0010 public static void main(String[] args) { 0011 0012 try { 0013 Scilab sci = new Scilab();0014 sci.open();0015 sci.exec(”disp(%pi);”);0016 0017 double [][]data={ { 42, Math.PI} } ;0018 ScilabDouble a = new ScilabDouble(data);0019 sci.put(”a”,a);0020 sci.exec(”b=cos(a);”);0021 ScilabType b = sci.get(”b”);0022 System.out.println(”b = ” + b);0023 0024 sci.close();0025 0026 } catch (org.scilab.modules.javasci.JavasciException e) { 0027 System.err.println(”An exception occurred: ” + e.getLocalizedMessage());0028 } 0029 0030 } 0031 }
b = [-0.39998531498835127, -1.0] 3.1415927
Output:
The free and open source software for numerical computation
And more to come
The free and open source software for numerical computation
The free and open source software for numerical computation
JIMS
● JIMS module provides an easy way to create and manipulate a Java object in Scilab environment.
● Benefits of Scilab Java interface:
– Access java API,
– Access third-party java classes,
– Pass data between Scilab variables and Java objects.
Available through ATOMS: http://atoms.scilab.org/toolboxes/JIMS or atomsInstall('JIMS')
example :jimport java.lang.String
s = String.new('hello')
jimport java.util.Enumeration
jgetmethods(Enumeration)
The free and open source software for numerical computation
And
● dNIMS: GSOC 2011
Ability for calling .NET framework or Mono from Scilab.
http://forge.scilab.org/index.php/p/dnims/
The free and open source software for numerical computation
Thanks for your attention
www.scilab.org