A Software Platform for Nanoscale Device Simulation and Visualization Marek Gayer and Giuseppe Iannaccone ACTEA 2009 - Conference on Advances in Computational Tools for Engineering Applications Notre Dame University, Faculty of Engineering, Zouk Mosbeh, Lebanon, July 15 – July 17, 2009 Google: "nanofem platform"
35
Embed
A Software Platform for Nanoscale Device Simulation and Visualization
Google: " nanofem platform". A Software Platform for Nanoscale Device Simulation and Visualization. Marek Gayer and Giuseppe Iannaccone ACTEA 2009 - Conference on Advances in Computational Tools for Engineering Applications - PowerPoint PPT Presentation
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
A Software Platform for Nanoscale Device Simulation
and Visualization
A Software Platform for Nanoscale Device Simulation
and VisualizationMarek Gayer and Giuseppe Iannaccone
ACTEA 2009 - Conference on Advances in Computational Tools for Engineering Applications
Notre Dame University, Faculty of Engineering, Zouk Mosbeh, Lebanon, July 15 – July 17, 2009
Google: "nanofem platform"
Google: "nanofem plaform"
2ACTEA 2009
Goals of NanoFEM platformGoals of NanoFEM platform
Create software platform for Technology CAD device simulation based on FEM
Should be flexible & modifiable (research) Interactive features: Geometry, meshing
and visualization with user interface Separation of IT (software) and physics Ability to run simulations on remote servers Able to run on Windows, Linux, Mac OS X Extendible; users should be able to develop
for the platform writing own modules Performance
Google: "nanofem plaform"
3ACTEA 2009
Finite Element MethodFinite Element Method Finding solution for Partial
Differential equations for evaluation of characteristics (e.g. potential)
Discretizes continuum (i.e. modeled object) into finite number of elements – e.g. triangles, tetrahedron
Characteristics are determined in the nodes of the element
Solving of linear systems Complex to design and
implement, solid mathematical and informatics understanding required for high performance
Google: "nanofem plaform"
4ACTEA 2009
3D Finite Element Mesh3D Finite Element Mesh
Suitable discretization of continuous domain to simple volume cell elements
Partial differential equations (PDE’s) can be replaced by system of non-linear algebraic equations
Very complex to create code to generate FEM mesh on arbitrary structures
Mesh need to be at least Delaunay mesh Tetrahedrons
Google: "nanofem plaform"
5ACTEA 2009
Related solutions / approachesRelated solutions / approaches
Transistor modeled in NETGENTransistor modeled in NETGEN
Google: "nanofem plaform"
7ACTEA 2009
Gmsh – Mesh of transistor + Postprocessing (tutorial dataset)
Gmsh – Mesh of transistor + Postprocessing (tutorial dataset)
Google: "nanofem plaform"
8ACTEA 2009
Components of NanoFEM platformComponents of NanoFEM platform
SALOME 3.2.6 supports limited number of OS’s => Developed as a VmWare image with:
– Debian Linux 3.1 (codename Sarge)– SALOME 3.2.6– FEniCS/DOLFIN 0.7.1– MeshAPI – lib. for our FEM module/component– Component and additional codes for SALOME– KDevelop for development– Additional tools (Krusader, …)
Running on VmWare Server 1+ or Workstation 6+ Eventual distribution by providing this VmWare image
SALOME(LGPL) is a free software that provides a generic platform for Pre and Post-Processing for numerical simulation.
Interactice geometry modelling, meshing Very good user interface (Qt4) Visualization (2D and 3D graphs) Can use Python scripting to replace or assist GUI:
all functionalities are also accessible through the programmatic integrated Python console
Modular architecture, we can create own modules Components can run on remote servers (CORBA) Exchanging data: MEDMEM API, .HDF, .MED Much more powerful then any other open source finite
Classes allowing solving nonlinear and nonlinear PDE, using DOLFIN, allows to set preconditioners and Krylov methods:
Available Krylov methods:– cg - The conjugate gradient method– gmres - The GMRES method (default)– bicgstab - The stabilized biconjugate gradient squared
method Preconditioners:
– none - No preconditioning– jacobi - Simple Jacobi preconditioning– sor - SOR, successive over-relaxation– ilu - Incomplete LU factorization (default)– icc - Incomplete Cholesky factorization– amg - Algebraic multigrid (through Hypre when available)
Google: "nanofem plaform"
20ACTEA 2009
MeshAPI based solversMeshAPI based solvers Using MeshAPI, one can easily, in few lines define
DOLFIN solvers as classes inherited from cl. Dolfin Behaviour that can be generalized and reused is
already defined in Mesh API It can be used in any current and future examples There are 3 example solvers:
– Poisson example from DOLFIN manual, but using Salome mesh
– Poisson equation computed on partitioned group– Poisson equation computed on partitioned group
with permittivity (Eps)– Non-linear Poisson equation computed on
partitioned group with permittivity (not 100% done)
Google: "nanofem plaform"
21ACTEA 2009
Solving linear PDE: Poisson equation:
f(x,y,z) – source function (known), can be 0 ε(x,y,z) – permittivity of material in given point u(x,y,z) – potential, that we are computing
Solving example – linear PoissonSolving example – linear Poisson
fu )(
Google: "nanofem plaform"
22ACTEA 2009
Bi-linear and linear form of Poisson equation:
g(x,y,z) – Neumann boundary condition
Solving example – linear PoissonSolving example – linear Poisson
dsvgvfdxvL
dxuvuva
)(
)(),(
Google: "nanofem plaform"
23ACTEA 2009
Converting equation to variational formConverting equation to variational form
# The bilinear form a(v, U) and linear form L(v) for # Poisson's equation. # Compile this form with FFC: ffc -l dolfin PoissonEps.form
element = FiniteElement("Lagrange", "tetrahedron", 1) v = TestFunction(element) u = TrialFunction(element) f = Function(element) g = Function(element) eps = Function(element)
a = dot(grad(v), grad(u))*eps*dx L = v*f*dx + eps*v*g*ds
# This generates 5239 lines, 191.359 characters
Google: "nanofem plaform"
24ACTEA 2009
Main solving routine in C++Main solving routine in C++ #include "PoissonEps.h“ #include "LinearPDE.hxx"
int SC::PoissonEps::solve () {
– Source f (mesh);– Flux g (mesh);– DirichletFunction u0 (mesh);– DirichletBoundary boundary(mesh);– DirichletBC bc (u0, mesh.dolfinMesh, boundary);– Eps eps (mesh);– PoissonEpsBilinearForm a (eps);– PoissonEpsLinearForm L (f, g, eps);– SC::LinearPDE pde (a, L, mesh.dolfinMesh, bc);– pde.setupKrylov (mesh.krylovMethod, mesh.krylovPc);– Function solution;– pde.solve(solution);
Scalar map of the electric potentialScalar map of the electric potential
Google: "nanofem plaform"
33ACTEA 2009
Scalar map of the electric potentialScalar map of the electric potential
Google: "nanofem plaform"
Conclusion - 1/2Conclusion - 1/2
NanoFEM platform is a new research environment for TCAD simulations of nanoscale devices.
Based on free LGPL components SALOME Platform and FEniCS/DOLFIN
We can concentrate only on developing of our MeshAPI and computational modules
Physicist/developers – independent Simple definition of equations instead of
programming
34ACTEA 2009
Google: "nanofem plaform"
Conclusion – 2/2Conclusion – 2/2
Interactive pre- and post-processing Automated meshing Modules can run on remote servers High performance Standard formats - .MED and .HDF .XML material database Good extendibility and modularity
35ACTEA 2009
Google: "nanofem plaform"
36ACTEA 2009
Possible future effort for the NanoFEM PlatformPossible future effort for the NanoFEM Platform
More complex equations (drift, diffusion) Compare performance with commercial More modules with exchange of fields Control of simulation flow and coupling Tests of supervision (with scripting) More complex boundary conditions Run on native Debian and Windows
Google: "nanofem plaform"
37ACTEA 2009
Thank you for your attention.Thank you for your attention.