introduction to orcan - sourceforge
TRANSCRIPT
![Page 1: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/1.jpg)
Introduction to ORCAN
M. Kellner
Department of Materials Science 6, University of Erlangen-Nuremberg
ORCAN Workshop, 26. April 2005
M. Kellner ORCAN
![Page 2: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/2.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Outline
1 Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
M. Kellner ORCAN
![Page 3: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/3.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Software for Simulation of Crystal Growth
Crystal Growth Laboratory
Development of simulation software since years.
CrysVUn, STHAMAS/-3D licensed to industry.
2D or axisymmetric complex geometries.
User friendly interface.
Research Project (CrysVUn3D)
Fully 3D simulation in complex geometries.
Focus on realistic modelling of thermal radiation.
Completely new development of simulation software.
M. Kellner ORCAN
![Page 4: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/4.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Why ORCAN?
Example (Thermal Radiation)
Geometry import and management.
Mesh generation and management.
Heat conduction simulation.
Linear equation system solver.
Coupling between (different) meshes.
Visualization.
Graphical user interface.
Parallelization.Figure: Czochralski furnace.
Drawback
A good deal of the time must be spend in preparation for the real task.
M. Kellner ORCAN
![Page 5: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/5.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Why ORCAN?
Example (Thermal Radiation)
Geometry import and management.
Mesh generation and management.
Heat conduction simulation.
Linear equation system solver.
Coupling between (different) meshes.
Visualization.
Graphical user interface.
Parallelization.Figure: Czochralski furnace.
Drawback
A good deal of the time must be spend in preparation for the real task.
M. Kellner ORCAN
![Page 6: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/6.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Why ORCAN?
Example (Large-Scale Software)
Not all can be developed anew.
Reuse of existing software packages.
Integration of a specific product is critical.
Highly interwoven application modules.
Increasing efforts on modifications.
Replacements more and more expensive. Figure: CrysVUn3D.
Drawback
Large application may fail if they reach a specific level of complexity.
M. Kellner ORCAN
![Page 7: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/7.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Why ORCAN?
Example (Large-Scale Software)
Not all can be developed anew.
Reuse of existing software packages.
Integration of a specific product is critical.
Highly interwoven application modules.
Increasing efforts on modifications.
Replacements more and more expensive. Figure: CrysVUn3D.
Drawback
Large application may fail if they reach a specific level of complexity.
M. Kellner ORCAN
![Page 8: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/8.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Goals
We are looking for a framework which
allows the decomposition of software in manageable modules.⇒ components
allows a clear functional specification of a module.⇒ interfaces
forces the developer to use the specification of a module.⇒ data hiding
allows replacement of a module with a minimum of effort.⇒ 3rd party products
allows easy extension of the software by new modules.⇒ plug-in mechanism
Middleware
CORBA, (D)COM, Python, ...
M. Kellner ORCAN
![Page 9: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/9.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Goals
We are looking for a framework which
allows the decomposition of software in manageable modules.⇒ components
allows a clear functional specification of a module.⇒ interfaces
forces the developer to use the specification of a module.⇒ data hiding
allows replacement of a module with a minimum of effort.⇒ 3rd party products
allows easy extension of the software by new modules.⇒ plug-in mechanism
Middleware
CORBA, (D)COM, Python, ...
M. Kellner ORCAN
![Page 10: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/10.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
void * module ;string name ;
Methods
M. Kellner ORCAN
![Page 11: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/11.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
void * module ;string name ;
Methods
M. Kellner ORCAN
![Page 12: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/12.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
void * module ;string name ;
Methods
M. Kellner ORCAN
![Page 13: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/13.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
void * module ;string name ;
Methods
M. Kellner ORCAN
![Page 14: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/14.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
void * module ;string name ;
Methods
Representative
M. Kellner ORCAN
![Page 15: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/15.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Idea
Components
with
Interfaces
and a
PropertyMap
M. Kellner ORCAN
![Page 16: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/16.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Outline
1 Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
M. Kellner ORCAN
![Page 17: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/17.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
What is ORCAN?
Traits
Collection of C++ libraries.
Self contained.
Middleware: Service between application modules.
Decomposition of software complexity.
→
M. Kellner ORCAN
![Page 18: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/18.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN
Specification
Component model(Placeholder for implementation)
Interfaces
Load implementation on demand
M. Kellner ORCAN
![Page 19: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/19.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN
Specification
Component model(Placeholder for implementation)
Interfaces
Load implementation on demand
M. Kellner ORCAN
![Page 20: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/20.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN
Specification
Component model(Placeholder for implementation)
Interfaces
Load implementation on demand
M. Kellner ORCAN
![Page 21: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/21.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN
Specification
Component model(Placeholder for implementation)
Interfaces
Load implementation on demand
M. Kellner ORCAN
![Page 22: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/22.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN/Sim
Specification
Based on ORCAN.
Simulation related components.
Example
VolMesh
GeometryVolMeshGen
Visualization
M. Kellner ORCAN
![Page 23: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/23.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN/Sim
Specification
Based on ORCAN.
Simulation related components.
ORCAN/SimTools
Based on ORCAN/Sim.
Collection of useful tools.
M. Kellner ORCAN
![Page 24: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/24.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Realizations
Specification
Based on ORCAN/Sim.
Implementation of components.
Not all interfaces necessary.
May use external software.
Loaded on demand.
Exchangeable, even at runtime.
M. Kellner ORCAN
![Page 25: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/25.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN/wx
Specification
Based on ORCAN.
Automatic GUI generation.
Display parameters of realization.
XML description of GUI.
Based on wxWidgets.
M. Kellner ORCAN
![Page 26: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/26.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Outline
1 Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
M. Kellner ORCAN
![Page 27: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/27.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Component, Interfaces, Realization
M. Kellner ORCAN
![Page 28: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/28.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Creation Process
ObjectBroker
Application needs new instance.VolMesh::New()
Calls ObjectBroker internally.
Load appropriated library file.
Instantiates realization.
Returns reference to application.VolMeshRef
M. Kellner ORCAN
![Page 29: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/29.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Creation Process
ObjectBroker
Application needs new instance.VolMesh::New()
Calls ObjectBroker internally.
Load appropriated library file.
Instantiates realization.
Returns reference to application.VolMeshRef
M. Kellner ORCAN
![Page 30: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/30.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Creation Process
ObjectBroker
Application needs new instance.VolMesh::New()
Calls ObjectBroker internally.
Load appropriated library file.
Instantiates realization.
Returns reference to application.VolMeshRef
M. Kellner ORCAN
![Page 31: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/31.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Creation Process
ObjectBroker
Application needs new instance.VolMesh::New()
Calls ObjectBroker internally.
Load appropriated library file.
Instantiates realization.
Returns reference to application.VolMeshRef
M. Kellner ORCAN
![Page 32: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/32.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Creation Process
ObjectBroker
Application needs new instance.VolMesh::New()
Calls ObjectBroker internally.
Load appropriated library file.
Instantiates realization.
Returns reference to application.VolMeshRef
M. Kellner ORCAN
![Page 33: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/33.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Object Reference
Access point to realization.
Query and usage of component interfaces.
Destroy of realization.
Example (Query interface)
Component with query interface IQuery:
VolMeshRef ref = VolMesh::New();
if( ref && ref.I.QueryPtr ) {int num = ref.I.QueryPtr->GetNumVertices();
}
ref.Delete();
M. Kellner ORCAN
![Page 34: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/34.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Reflectivity
Problem
Realizations of the same component may have different parameters.
Example (VolMeshGen)
Gmshfloat characteristic length;float max element size;
Tetgenfloat global max volume;float min angle;
Reflectivity support
Ability to query a component for its intrinsic parameters at runtime.
M. Kellner ORCAN
![Page 35: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/35.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
Reflectivity
Problem
Realizations of the same component may have different parameters.
Example (VolMeshGen)
Gmshfloat characteristic length;float max element size;
Tetgenfloat global max volume;float min angle;
Reflectivity support
Ability to query a component for its intrinsic parameters at runtime.
M. Kellner ORCAN
![Page 36: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/36.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
PropertyMap
A parameter of a realization is encapsulated in a property.
A property consists of a key/value pair:
string <name>, type <value>
Example
“MinAngle” (float) 15.3“MaxVolume” (float) 0.12“SubdivideBdry” (bool) true
All properties are stored in a map: PropertyMap
The property map can be queried byHasProperty()GetProperty()
M. Kellner ORCAN
![Page 37: Introduction to ORCAN - SourceForge](https://reader033.vdocuments.net/reader033/viewer/2022042421/626137d07ae1a45d7a455a8b/html5/thumbnails/37.jpg)
Open Reflective Component ArchitectureMotivationORCAN OverviewORCAN Design
ORCAN/SimComponents for Simulation
M. Kellner ORCAN