Program Families in Scientific Computing Methodology Mesh Generator - - PowerPoint PPT Presentation

program families in scientific computing
SMART_READER_LITE
LIVE PREVIEW

Program Families in Scientific Computing Methodology Mesh Generator - - PowerPoint PPT Presentation

Slide 1 of 20 Why Program Families? Program Families in Scientific Computing Methodology Mesh Generator Generator Virtual Spencer Smith, John McCutchan and Fang Cao Laboratories Concluding Remarks Department of Computing and Software


slide-1
SLIDE 1

Slide 1 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Program Families in Scientific Computing

Spencer Smith, John McCutchan and Fang Cao

Department of Computing and Software McMaster University

The 7th OOPSLA Workshop on Domain-Specific Modeling

slide-2
SLIDE 2

Slide 2 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Outline

1

Why Program Families in Scientific Computing (SC)?

2

Proposed Methodology

3

Multipurpose Tool: A Mesh Generator Generator

4

Specific Physical Model: A Family of Virtual Material Testing Laboratories

slide-3
SLIDE 3

Slide 3 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Advantages of Program Families to SC?

  • Usual benefits
  • Reduced development time
  • Improved quality
  • Reduced maintenance effort
  • Increased ability to cope with complexity
  • Reusability
  • Underused potential for reuse in SC
  • Reuse commonalities
  • Systematically handle variabilities
  • Usability
  • Documentation often lacking in SC
  • Documentation part of program family methodology
  • Create family members that are only as general

purpose as necessary

  • Improved performance
slide-4
SLIDE 4

Slide 4 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Is SC Suited to a Program Family Approach?

  • The redevelopment hypothesis
  • A significant portion of requirements, design and code

should be common between family members

  • Common model of software development in SC is to

rework an existing program

  • Progress is made by removing assumptions
  • The oracle hypothesis
  • Likely changes should be predictable
  • Literature on SC, example systems, mathematics
  • The organizational hypothesis
  • Design so that predicted changes can be made

independently

  • Tight coupling between data structures and algorithms
  • Need a suitable abstraction
slide-5
SLIDE 5

Slide 5 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Proposed Methodology

1 Identify family of interest

  • Specific physical model?
  • Multipurpose tool?

2 Commonality analysis

  • Terminology
  • Commonalities
  • Variabilities
  • Parameters of variation
  • Binding time

3 Domain Specific Language (DSL) 4 Generation of family members

slide-6
SLIDE 6

Slide 6 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Commonality Analysis

1 Reference Material: a) Table of Contents b) Table

  • f Symbols c) Abbreviations and Acronyms

2 Introduction: a) Purpose of the Document b)

Organization of the Document

3 General System Description: a) Potential System

Contexts b) Potential User Characteristics c) Potential System Constraints

4 Commonalities: a) Background Overview b)

Terminology Definition c) Goal Statements d) Theoretical Models

5 Variabilities: a) Input Assumptions b) Calculation

c) Output

6 Traceability Matrix 7 References

slide-7
SLIDE 7

Slide 7 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

A Mesh Generator Generator

x

vi y

y

1 20 2 3 4 1 i 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 2 3 4 5 6 7 8 9 10 11 12

W L

ui y x

slide-8
SLIDE 8

Slide 8 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Mesh Generator (MG) Goals

G1 Input spatial domain Ω output a mesh M that covers this domain. G2 Transform information on the materials, material properties and the locations of the different materials G3 Transform information on the boundary condition types, values and locations G4 Transform system information, such as numerical algorithm parameters

slide-9
SLIDE 9

Slide 9 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Element Variability

Location of nodes: sequence of LocationT Number of dof at nodes: sequence of N LocationT = tuple of (L1 : natT, L2 : natT, L3 : natT) natT = { s : R|0 ≤ s ≤ 1 : s }

1 3 2

slide-10
SLIDE 10

Slide 10 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Local Topology Variability

Quad Triangle1 Triangle2 Triangle3 Triangle4 Triangle5 Triangle6 Triangle7 Triangle8

slide-11
SLIDE 11

Slide 11 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

DSL Using XML

<elementSet> <geometrySpec> <shape>t r i a n g l e 1</ shape> <nodeGeo count=” 3 ”> <node id=” 1 ”> <l o c a t i o n>1 ,0 ,0</ l o c a t i o n> </ node> <node id=” 2 ”> <l o c a t i o n>0 ,1 ,0</ l o c a t i o n> </ node> . . . </ nodeGeo> </ geometrySpec> </ elementSet>

slide-12
SLIDE 12

Slide 12 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Proof of Concept Implementation

  • XML document that customizes a Java object
  • The Java object customizes the general purpose MG

as it is loaded

  • General purpose MG
  • All variabilities bound at run-time
  • Corresponds to an empty XML specification
slide-13
SLIDE 13

Slide 13 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

A Virtual Material Testing Laboratory

y x z

F

L L0 ∆L H H0 W0 W

slide-14
SLIDE 14

Slide 14 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Goal

Given the deformation history of a material particle, determine the internal stress within the material particle.

y x z

σxx σxy σxz σyy σyx σyz

σzz σzx σzy

slide-15
SLIDE 15

Slide 15 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Theoretical Model Input

σ0 : R6 tbeg : R tend : R ˙ ǫ(t) : {t : R|tbeg ≤ t ≤ tend : t} → R6 mat prop val : string → R E : {x : R|x ≥ 0 : x} ν : {x : R|0 < x ≤ 0.5 : x}

slide-16
SLIDE 16

Slide 16 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Theoretical Model Output

σ(t) : {t : R|tbeg ≤ t ≤ tend : t} → R6 such that ˙ σ = D

  • ˙

ǫ − γ < φ(F(σ, κ)) > ∂Q(σ)

∂σ

  • and σ(tbeg) = σ0

F = 0 ∂Q ∂σ Q = 0

slide-17
SLIDE 17

Slide 17 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Variabilities

  • F = F(σ, κ) : R6 × R → R
  • Q = Q(σ) : R6 → R
  • κ = κ(ǫvp) : R6 → R
  • φ = φ(F) : R → R
  • γ : R
  • mat prop names : set of string
slide-18
SLIDE 18

Slide 18 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Code Generation

  • Specify variabilities
  • Symbolically calculate terms needed by numerical

algorithm, including ∂Q

∂σ, ∂F ∂σ, etc.

  • Symbolic processing avoids tedious and error-prone

hand calculations

  • Reduces workload
  • Allows non-experts to deal with new problems
  • Increases reliability
  • Use Maple Computer Algebra System for model

manipulation

  • Convert math expressions into C expressions using

“CodeGeneration”

  • Inline into a C++ class defining the material model
  • A finite element program can this interface to realize

the numerical algorithm

slide-19
SLIDE 19

Slide 19 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

BNF of DSL for F

expression→number| (expression)| expressionˆexpression| expression∗expression| ... simulation-variable-F|user-defined-constants simulation-variable-F→Kappa|simulation- variable-stress|simulation-variable-stress- macros simulation-variable- stress→SigmaXX|SigmaYY|SigmaZZ|SigmaXY| SigmaYZ|SigmaXZ simulation-variable-stress- macros→Sxx|Syy|Szz|Sxy|Syz|Sxz|Sm|J2|J3|q user-defined-constants→string

slide-20
SLIDE 20

Slide 20 of 20 Why Program Families? Methodology Mesh Generator Generator Virtual Laboratories Concluding Remarks

Concluding Remarks

  • SC software is a great candidate for development as a

program family

  • Produce programs that are as special or general

purpose as needed

  • Improve reusability, usability and reliability
  • Potential to improve performance
  • A commonality analysis facilitates the design of a DSL
  • Symbolic processing and code generation are very

useful techniques