This Is How I Glyph – Tcl Namespaces (Part 3)

This is the third in a series of posts about the Tcl namespace command. Each subsequent post will cover more complex uses of namespaces. While this topic is strictly related to Tcl only, it could help you when developing more complex Glyph scripts.

The topics to be covered in this post depend upon a clear understanding of concepts outlined in both Tcl Namespaces (Part 1) and Tcl Namespaces (Part 2). If you haven’t already, then please review them before continuing.

Objects are Good

If you have done any Pointwise Glyph scripting, then you know that Glyph is an object oriented (oo) Tcl package that supports datatypes such as pw::Point. These datatypes follow the create/manipulate/delete paradigm.

Many instances (a.k.a. objects) of a datatype can be created. Each object has its own internal variables that can be manipulated independently from all other objects using the object’s subcommands. The code below demonstrates the oo create/manipulate/delete paradigm using the pw::Point datatype.

To create a point object, we call the pw::Point create command. The value returned is captured in the variable dbPt. As can be seen in Manipulate section of the code, $dbPt supports subcommands just like a namespace command ensemble. That is because $dbPt is a namespace command ensemble!

When the $dbPt object is no longer needed, a call to the $dbPt delete command removes the $dbPt object namespace and all of its internal data from the system.

package require PWI_Glyph 2.18.0

# Create
set dbPt [pw::Point create]
puts "dbPt's object name == '$dbPt'"

# Manipulate
$dbPt setPoint {1.0 2.0 3.5}
puts "dbPt getXYZ        == [$dbPt getXYZ]"
puts "dbPt isConstrained == [$dbPt isConstrained]"

# Delete
$dbPt delete

# $dbPt no longer exists - this will fail
catch {$dbPt isConstrained} msg
puts "dbPt isConstrained == $msg"

# Output
# dbPt's object name == '::pw::Point_1'
# dbPt getXYZ        == 1.0 2.0 3.5
# dbPt isConstrained == 0
# dbPt isConstrained == invalid command name "::pw::Point_1"

RangeInt Revisited

Part 2 of this series introduced the RangeInt command ensemble. While RangeInt is functional, its usage tended to be verbose (RangeInt command name args). In addition, you can’t pass the named values into procs because the values are all hidden within RangeInt itself. As shown in the code below, only the value’s name can be passed to a proc and the proc would then need to call one of the RangeInt commands using that name.

# Using non-object oriented RangeInt from Part 2
source "RangeInt-ensemble.tcl"

proc calcProgress { cnt total name } {
  RangeInt set $name [expr {int(100.0 * $cnt / $total)}]
}

RangeInt add percent 0 0 100
calcProgress 12 200 percent
puts "percent: 12 / 200 == [RangeInt get percent]%"

# Output
# percent: 12 / 200 == 6%

If RangeInt was like pw::Point, the code would be more flexible. For instance, an object of any type could be passed to a proc as long the object supports the needed subcommands as demonstrated in the code below.

source "RangeInt-oo.tcl"

proc calcProgressObj { cnt total obj } {
  $obj set [expr {int(100.0 * $cnt / $total)}]
}

set percent [RangeInt create 0 0 100]
calcProgressObj 12 200 $percent
puts "percent: 12 / 200 == [$percent get]%"
$percent delete

# This works if $other supports "set N" and "get"
set other [OtherType create]
calcProgressObj 20 400 $other
puts "  other: 20 / 400 == [$other get]%"
$other delete

# Output
# percent: 12 / 200 == 6%
#   other: 20 / 400 == 5%

Let’s explore using namespaces to make RangeInt object oriented just like pw::Point.

RangeInt create

The first step on the road to an object oriented implementation of RangeInt is the need for a RangeInt create subcommand. This command will do the work needed to establish the new object’s command ensemble, initialize its variables, and then return the namespace name to the caller. The create proc is shown below.

namespace eval RangeInt {
  variable cnt_ 0 ;# used to create unique object names

  namespace export create
  proc create { {val 0} {min inf} {max inf} } {
    set ns [namespace current]
    # Build unique object name == "${ns}::_N"
    set objName "${ns}::_[incr ${ns}::cnt_]"
    # Create the object command ensemble
    eval "namespace eval $objName \$${ns}::proto_"
    # Init the object - error if $val is out of range
    ${objName}::ctor $val $min $max
    return $objName
  }
  namespace ensemble create ;# create the RangeInt ensemble

  #----------------------------------------------------------
  # RangeInt object ensembles support these subcommands
  variable proto_ {
    ...
  } ;# end proto_
}

The create proc first constructs a unique name (objName) by concatenating the namespace name stored in $ns with the incremented namespace variable cnt_. This produces names of the form ::RangeInt::_N.

Next, the object’s ensemble is created by the call:

  • eval “namespace eval $objName \$${ns}::proto_”

The eval command take the arguments passed to it and evaluates them with a recursive call to the Tcl interpreter. After variable substitution and character escaping, the script evaluated above would be similar to:

  • namespace eval ::RangeInt::_1 $::RangeInt::proto_

The variable $::RangeInt::proto_ contains commands that define the new object’s namespace ensemble. We will take a closer look at this variable later. This is similar to how we created the RangeInt ensemble in Part 2. Except here, the ensemble name is different for each object created.

Finally, the new object ensemble is initialized (constructed) with a direct call the the namespace proc ${objName}::ctor and the name of object’s namespace ensemble, $objName, is returned to the caller.

RangeInt::proto_

The RangeInt ensemble has been expanded below to include the value of the RangeInt::proto_ variable. Notice that it looks a lot like a namespace ensemble. Actually, if you were to replace variable proto_ below with namespace eval proto_ you would have a valid namespace ensemble named proto_. However, we don’t want one ensemble. We want many, identical ensembles that all support the same procs and variables.

This is how RangeInt create works. Every time RangeInt create is called, it uses the ensemble definition stored in RangeInt::proto_ to create a uniquely named, yet functionally identical ensemble. The ensemble name returned by RangeInt create is the object’s name and it provides access to the ensemble commands.

RangeInt::proto_ defines the three variables min_, max_, and val_. It also exports the three procs set, get, and delete. It also defines the unexported, helper procs ctor and check. As mentioned above, ctor is called by RangeInt create to initialize each new object. While check is used by the $object set subcommand to validate incoming values.

namespace eval RangeInt {
  variable cnt_ 0 ;# used to create unique object names

  namespace export create
  proc create { {val 0} {min inf} {max inf} } {
    set ns [namespace current]
    # Build unique object name == "${ns}::_N"
    set objName "${ns}::_[incr ${ns}::cnt_]"
    # Create the object command ensemble
    eval "namespace eval $objName \$${ns}::proto_"
    # Init the object - error if $val is out of range
    ${objName}::ctor $val $min $max
    return $objName
  }
  namespace ensemble create ;# create the RangeInt ensemble

  #----------------------------------------------------------
  # RangeInt object ensembles support these subcommands
  variable proto_ {
    variable min_   inf  ;# object's range min
    variable max_   inf  ;# object's range max
    variable val_   0    ;# object's current value

    # constructor - NOT EXPORTED
    proc ctor { val min max } {
      variable min_ $min
      variable max_ $max
      [namespace current]::set $val ;# error if out of range
    }

    # helper - NOT EXPORTED
    proc check { val op lim } {
      return [expr [list "$lim" == "inf" || $val $op $lim]]
    }

    namespace export set
    proc set { val } {
      variable min_
      variable max_
      if { [check $val >= $min_] && [check $val <= $max_] } {
        variable val_ $val
        return $val_
      }
      return -code error "Value $val not in ($min_, $max_)"
    }

    namespace export get
    proc get {} {
      variable val_
      return $val_
    }

    namespace export delete
    proc delete {} {
      namespace delete [namespace current]
    }

    namespace ensemble create ;# create the object ensemble
  } ;# end proto_
}

Using RangeInt

Some usage examples are given below to demonstrate the new oo functionality available in the enhanced RangeInt.

# Usage
set vA [RangeInt create 22 -5 25] ;# range -5 ... 25
puts "vA's object name is '$vA'"
puts "vA == [$vA get]"
puts "vA == [$vA set -3]"
catch {$vA set 99} msg
puts "vA == $msg"
$vA delete
catch {$vA set 0} msg
puts "vA == $msg"
puts {}
set vB [RangeInt create 1 0 5] ;# range 0 ... 5
puts "vB's object name is '$vB'"
puts "vB == [$vB get]"
puts "vB == [$vB set 5]"
catch {$vB set -1} msg
puts "vB == $msg"
$vB delete
catch {$vB set 0} msg
puts "vB == $msg"

# Output
# vA's object name is '::RangeInt::_3'
# vA == 22
# vA == -3
# vA == Value 99 not in (-5, 25)
# vA == invalid command name "::RangeInt::_3"
# 
# vB's object name is '::RangeInt::_4'
# vB == 1
# vB == 5
# vB == Value -1 not in (0, 5)
# vB == invalid command name "::RangeInt::_4"

Until Next Time

This post covered the creation of object oriented namespace command ensembles. I will be covering additional namespace wizardry in future posts. If you want to learn more about namespaces, then take a look at the full Tcl namespace documentation.

Posted in Applications, Software | Tagged , , | 1 Comment

This Week in CFD

Software

  • Dassault Systemes acquired Next Limit Dynamics, makers of the XFlow Lattice Boltzmann CFD solver.
  • Tecplot RS 2016 R2 was released for visualization of reservoir simulation results and includes many new capabilities including a debugger for macros. See image below.
  • RhinoCFD Beta 2 from CHAM was released with cylindrical-polar meshes and more.
  • Concepts NREC announced the release of its Agile Engineering Design System version 8.5 for turbomachinery.
  • Autodesk’s Project Calrissian for CFD has extended their technology preview through 06 March 2017.
  • CFD Support has packaged up v16.10 of OpenFOAM for Windows and Linux and announced a new release of CFturbo.
Visualization of a reservoir simulation from Tecplot RS. Image from Tecplot. See link above.

Visualization of a reservoir simulation from Tecplot RS. Image from Tecplot. See link above.

Computers & Computing

  • Here’s an interview with Argonne’s Dr. Paul Messina on the topic of exascale computing and the U.S.’ Exascale Computing Project’s goal to develop two exascale machines by 2023. [My word of the day, “performant,” is used in this article.]
  • Part 2 of what appears to be a 3-part review of this year’s SC16 (aka supercomputing) event focuses on the lack of diversity in the HPC field, esp. the lack of female participation.
  • ANSYS’ simulation software will now be available via Rescale‘s cloud-based platform.
CD adapco simulated the aerodynamic performance of the Millennium Falcon. [I'm fairly certain that radar dish is coming off unless the brackets are made from Unobtanium. Click image for this [nicely done] article.

CD-adapco simulated the aerodynamic performance of the Millennium Falcon. [I‘m fairly certain that radar dish is coming off unless the brackets are made from Unobtanium.] Click image for this [nicely done] article.

Applications

  • If you’re considering trying Envenio’s EXN/Aero solver, they’ve published a list of all the meshers with which it is compatible. [Full disclosure: Pointwise is on that list.]
  • ESI Group and Xerox Parc have partnered for “system reliability modeling, system safety assessment, predictive maintenance, and condition-based maintenance.” [A smart person will have to tell me what exactly that means.]
    • That partnership is also mentioned in Monica Schnitger’s look at ESI’s Q3 financial results including a forecast of €141 million revenue for the year.
  • Alert reader Kevin shared Autodesk Simluation’s photo of 3-D printed streamlines.
  • CONSELF introduced “pay per use” cloud-based CFD.
  • In case you missed it, the Wall Street Journal ran an story on bio-inspired aeroacoustics.
  • Envenio shared a simulation of HVAC in an aircraft hangar.

Hungry for Meshes

What do you get when you combine two tetrahedra with churros? Something absolutely amazeballs called a churroduo from Dominique Ansel’s Tokyo bakery.

I urge readers in Tokyo to rush out and taste a churroduo and report back on the experience.

Churro + tetrahedra = churroduo. [Or may I suggest churrohedra?]. Image from That's Nerdalicious. See link above.

Churro + tetrahedra = churroduo. [Or may I suggest churrohedra?]. Image from That’s Nerdalicious. See link above.

Bonus: Making art with Python. Click the link to see the art and the animations.

A Python animation inspired by Arabesques: mosaiques murales. Image from Software Carpentry. Click image for link.

A Python animation inspired by Arabesques: mosaiques murales. Image from Software Carpentry. Click image for link.

Posted in Applications, Hardware, News, Software | Tagged , , , , , , , , , , , , , , , , , , | Leave a comment

I’m Scott Burch and This Is How I Mesh

Scott Burch, Design Engineer, Development Series Team Manager, Garry Rogers Motorsport.

Scott Burch, Design Engineer, Development Series Team Manager, Garry Rogers Motorsport.

The first time I’d heard of CFD was when Ford Australia used it to develop their V8 Supercar in 2003 on their super computer in America.  When describing the power of the hardware, they said it was used to calculate nuclear bomb tests; which blew my mind.  I never thought that I’d be working at Garry Rogers Motorsport one day and using it to design a Volvo V8 Supercar.

In my final year of high school I was in the class of 2000 (does anyone remember that Y2K thing?). Originally wanting to be an architect, I was rejected from the degree after my final interview when they asked if I like reading. I responded with “I’d rather look at the pictures” (a CFD engineer in the making right there!).  I instead had to settle for a building design and drafting course and found that dedication was an issue because I was always going to car races and working on cars in my spare time.  Being the kind of person who just has to finish things, I completed my drafting course before taking steps to work in the automotive industry.

In 2004 I accepted a job working as a Fabricator and Painter for the design bucks and clay models of the then-upcoming Holden VE Commodore (Pontiac G6 in America).  I thoroughly enjoyed this job and remember putting in long hours (90 hour week once) to get these projects done on time.  This led to a Fitting and Turning apprenticeship with GM Holden at their engine manufacturing plant just across the road.

At the end of my apprenticeship in 2008, the GFC had hit.  While Australia was lucky to avoid much of the turmoil, times were very tough with Holden because it was part of GM and all apprentices were let go at the end of our time.  I had been studying Mechanical Engineering at night school for the entirety of my apprenticeship after initially enrolling just to show GM I was keen, but found that I really enjoyed it.  I was at a crossroad where I either continued with my trade or pushed on with my study.

I ended up selling my house and went to RMIT University to study Mechanical Engineering full-time.  At the age of 26 I was the old man of my class.  I became involved in the FSAE team (students design and build and small race car), which was great for turning our course knowledge into real useable skills and making friends who I now see regularly at the track and work for other teams—frienemies.

It was in my last year, when I finally began to study CFD and vehicle aerodynamics, that a job offer from Garry Rogers Motorsport was circulating the student email system.  They wanted to start a CFD program for full car aerodynamic analysis and it was right up my alley.  I applied, made about 4000 phone calls, had an interview, and told them how much I enjoy looking at the pictures. This time that line worked for me.

CFD seems to really play into my psyche.  You can do almost anything you can imagine and I always have an idea I would like try.  Coming in to work when a simulation is nearly complete is like Christmas morning; the surprise is there and ready to be opened.

  • Location: Dandenong, Victoria, Australia (Dandenong is based on the local Aboriginal word for ‘lofty mountain’)
  • Current position: Design Engineer, Development Series Team Manager
  • Current computer: CPU Intel Core I5-3570 CPU @ 3.40GHz, 32GB RAM, NVIDIA Quadro FX 1500, Windows 7 and 2 x CPU Intel Core E5-2670 CPU @ 3.10GHz, 190GB RAM, CentOS 6.7
  • One word that best describes how you work: Obsessed

What software or tools do you use every day?

Pointwise V18.0R1, Caelus 6.04, Solidworks2016, Outlook, Excel, TI-89 Calculator, and a Vernier caliper.

What does your workspace look like?

scottburchworkspace

The engineering office runs along the wall of the workshop directly behind the work bays for the cars and is shared by seven engineers.  We all have multiple roles on the team, apart from the two race engineers who are very much focused on the setup of the cars.  We have an air conditioner and constantly let the mechanics know about it on the 40°C (104°f) plus days.

I have all my data folders, category rule book, diary and my race car ONLY Toshiba Tectra laptop on the desk ready to go.  Scrap paper is used for roughing out calculations and design ideas and the occasional cartoon characters when the computer is thinking.  I’ve heard a rumor that the team owner enjoys stopping by my desk when I’m not around to see which character I’ve drawn.

I run two monitors/computers.  On the right is my Windows machine, and on the left is the Linux number crunching beast.  The computers are linked using the Synergy keyboard and mouse sharing program so that I can quickly jump between computers.

What do you see are the biggest challenges facing CFD in the next 5 years?

I suppose we have our own ideas depending on our experience in the industry.  I’d say in motorsport it would have to be finding the balance between the speed of solving and accuracy of the model.  It is difficult for people without the experience to accept this link.  Quite often you’re asked to make the mesh huge and detailed, while it has to be solved yesterday.

However the penetration of CFD, how it works, and what can be achieved, is slowly starting to become recognized by the public.  When I give sponsors and fans garage tours, the mention of CFD gets fewer confused looks than it did when I started.

What are you currently working on?

Many of our fans will be happy to hear that I’m still working hard on the Volvo S60 V8 Supercar.  With the introduction of mixed meshes in Pointwise, I am moving toward full car simulation to capture the out-of-symmetry features of the car.

What would you say is your meshing specialty?

Meshing high down force ground vehicles (or racecars for short) would have to be my specialty.  When considering the move to OpenFOAM, I had to rethink many of the ways I mesh when compared to the finite element solver I was using before.  In particular, when producing 2D surface meshes adjacent to each other, such as the front of the car and ground, the surface mesh should be generated using elements of similar edge lengths. Otherwise, once the volume is inflated between the two surface meshes there will be excessive centroid skewness, a metric our finite element solver was not as sensitive to.

Automotive aerodynamics is generally highly turbulent. This is especially true on production based body shapes with down force producing elements added to them.  Understanding of the flow separation regions goes a long way to producing consistent, reliable results and is something that using the source feature in V18 will be fantastic for.

Any tips for our users?

Download the Pointwise Y+ app.  It’s very useful for helping setup your T-Rex parameters.  Regularly refresh yourself on the fundamentals of CFD because sometimes you have to take that step back to take a step forward.

What project are you most proud of and why?

Definitely the Volvo S60 V8 supercar.  This was the first full car design we undertook using CFD, and it was a huge success.  I enjoyed researching not only the cars in our category, but cars in all forms of motorsport.  I ran models to test concepts and I had many “aha!” moments when the CFD revealed the key behind many design features that had puzzled me.

The Volvo also showed that there is no single solution to slap on an entire category of cars because their design features change so much between body types.  Even a seemingly insignificant change in surface area or changing the radius of an external component can make a profound difference to the aerodynamic behavior of the car.

What CFD solver and postprocessor do you use most often?

We spent a number of years using AcuSolve which is a finite element solver.  We had great success with this and our Pointwise meshes.  We’ve had an association with Applied CCM since 2012 as our technical CFD partner. Pointwise enthusiastically joined when Dr. Darrin Stephens told them about our struggles with the inflation of the volume mesh due to the complexity and size of the models we were building; very much a case of “challenge accepted.”

Since the release of Caelus from Applied CCM, we’ve pushed to utilize this solver for our work which has begun to work well for us after changing a few of our meshing methods.  After initially working in ParaView for post processing, we’ve moved to FieldView because our past experience has shown it is a very powerful tool for creating visuals and data.

Are you reading any interesting technical papers we should know about?

I subscribe to Racecar Engineering magazine.  They have a contributor named Simon McBeath and I’d credit him with helping me develop my methodology for evaluating my CFD models.  Mr. McBeath has recently done some features with Miqdad Ali from Dynamic Flow Solutions on Formula 1 CFD in OpenFOAM which have been really interesting.  In the September 2016 issue they evaluate the challenges with overtaking scenarios and aerodynamic behavior in anticipation of future rule changes in F1.

Do you plan on attending any conferences or workshops next year?

It is difficult to attend workshops and conferences from Australia, which is why writing for The Connector is really great.  Following the Twitter feeds of various people also help keep me up to date.

I attended the Pointwise UGM this year which was a great experience, and not just for meeting the people behind the scenes, but to also see what other users are doing with the software and share what they’ve learned.  The UGM was my first time using Pointwise V18 and I had brought a mesh of the Supercar with me. Within one hour I’d reduced the surface mesh size by 500k elements which would in turn reduce the volume mesh by ~10M elements once T-rex was applied.  I’d almost put all of those elements back in areas of interest by using the new sources feature.

What do you do outside the world of CFD?

I’m currently finishing the restoration of my 1971 Datsun 240Z.  When I started it was going to be a fire breathing track weapon. But the older I get the more I want it to look as it did when it came out of the factory, which is much harder to do than customizing it!  There were only 1,500 delivered to Australia, but 250,000 to the U.S., which makes it a treasure trove of rare bits.  I have spent years combing through online shops and auctions, and putting up with insane postage costs to get it to this point.  My parts always have a stopover in Hawaii on their way to Australia. Half my car has been there and I haven’t, what a mockery.  I have also begun the restoration of my father’s 1974 Ford Falcon GT.  If you’ve ever seen the movie Mad Max, then you’ve seen this car before.

I’m a bit of an artist and last year purchased a Wacom Cintiq 24HD drawing screen.  I initially wanted to draw my own comic strips, but have steered toward automotive painting and have done a few commission paintings for people. I also do a painting for the team and sponsors at the end of the year.  I have a profile on DeviantArt where I post my digital paintings and also see what other artists are doing.  I’m a big fan of futuristic sci-fi cityscapes and futuristic apocalyptic ruins. It’s so creative and I love dark landscapes, though I don’t have a dark personality, I swear.

Both of these hobbies involve a lot of patience.  Sometimes I’ll be so close to a milestone and realize I just can’t spend more time on it, or I have to order a part before I can progress.  So, tools down for the night.

Cars, cars, cars it would seem.

I hope to see a bit of the world in the future. My job does have me travelling to a different part of the country or world every 2-3 weeks, but I often only get to the see the hotel and race track.  Greece and Italy are currently high on the list.

What is some of the best CFD advice you’ve ever received?

“Wind tunnels find the What; CFD finds the Why.” – Aerodynamics of Road Vehicles, Wolf-Heinrich Hucho.

If you had to pick a place to have dinner, where would you go?

Can I go back to the early 90’s for this dinner?  There was a restaurant when I was about 8 or 9 called “Robs” and it was a Chinese restaurant, so I always found the name a bit odd.  They had the best food and plenty of it.  The front window had water cascading from the roof into a pool below with a big flame erupting from the middle.  As a kid I would run an Olympic marathon chasing my twin brother around the place. I’m surprised no one ever scolded me for it.  It was the best experience.

Posted in People & Places | Tagged , , , , , , , , , , , , , , | 1 Comment

This Week in CFD

Applications

  • CFD provides insight into stroke risk by simulating flow in the human heart. Video included at link.
  • Here’s a brief article describing some uses of the Kestrel CFD solver – F-35 inlet and transonic wind tunnel compressor – at the U.S. Air Force’s Arnold AFB.
  • Is CFD part of Industry 4.0? This article describes Industry 4.0 as a future in which “every manufacturing process and import it into one holistic system where the workflow, maintenance and management of every machine, process or even a factory’s entire shop floor can be monitored and controlled from one or number of remote or collocated hubs.” But the sole image in the article seems to be the flowfield around an aircraft.
  • FloEFD contributed to the NASCAR Whelen Euro Series Championship.
Garry Rogers Motorsport is using Pointwise and Caelus to model the aerodynamic performance of their S60 V8 Supercar, including brake cooling as shown here. Click image for article.

Garry Rogers Motorsport is using Pointwise and Caelus to model the aerodynamic performance of their S60 V8 Supercar, including brake cooling as shown here. Click image for article.

Pointwise News

  • We’ll be hosting a webinar on 14 December to share the newest meshing capabilities in Pointwise Version 18 including unstructured quad-dominant surface meshing, unstructured hex layer extrusion with T-Rex, and isotropic tetrahedral mesh clustering with sources.
  • Come see us at AIAA SciTech 2017 where we’ll be presenting technical papers on some of our latest work, demonstrating Pointwise in the exhibit hall, and hosting a reception.

Software

  • In advance of new products coming in 2017, Friendship Systems has announced a realignment of their CAESES product portfolio. In particular, CAESES Free is being discontinued.
  • New versions of Isight and Tosca are available with a webinar coming on 09 December.
  • The new features in FLOW-3D v11.2 will be the subject of a Flow Science webinar on 15 December.
  • Here’s a write-up on Numeca’s use of Nvidia’s OpenACC to accelerate the performance of their Fine/Turbo CFD code.
CFD was used to compute the heat transfer coefficient on fruit in cardboard boxes with various configurations of vent holes. Image from ScienceDirect. Click image for article.

CFD was used to compute the heat transfer coefficient on fruit in cardboard boxes with various configurations of vent holes. Image from ScienceDirect. Click image for article. [Fruit cooling!]

Events

  • At the EnSight 2016 Japan User Group Meeting, CEI revealed new software coming in 2017 including EnSight 10.2 and Nexus, “a browser-based hub for engineering data.”
  • The Talking CFD Podcast is 3 episodes into season two and you can get caught up [binge listen?] here.
    • And they’ve introduced something new this season, the Talking CFD Social “live” stream with the first episode including Pointwise’s Travis Carrigan and Manor Racing’s Simon Hubbard.

Mesh as Architecture

Our friends at Branch Technology (winner of the Meshy Award for 2016) have contributed to the construction of the world’s largest 3-D printed structure, a pavilion for the Design Miami fair. The structure, called Flotsam & Jetsam, was designed by SHoP Architects as part of their 2016 Design Miami Visionary Award.

It’s mind-boggling when you think about the fact that Branch Technology uses Pointwise to generate the meshes that are 3-D printed into these life-size forms.

Flotsam & Jetsam by SHoP Architects is the world's largest 3-D printed structure. Image provided by Branch Technology. See links above.

Flotsam & Jetsam by SHoP Architects is the world’s largest 3-D printed structure. Image provided by Branch Technology. See links above.

Video fly-through of Flotsam & Jetsam by SHoP Architects. Click image for video.

Video fly-through of Flotsam & Jetsam by SHoP Architects. Click image for video.

Bonus: ETH Zurich has developed Mesh Mould for “building load-bearing concrete elements of any any shape without formwork.” The Rhino software is part of their toolchain.

Posted in Applications, Events, News, People & Places, Software | Tagged , , , , , , , , , , , , | Leave a comment

This Week in CFD

Special “I’ve eaten too much turkey” Edition*

News & Events

  • Siemens PLM Software acquired Mentor Graphics for $4.5 billion. This deal brings together STAR-CCM+ and FloEFD.
    • DEVELOP3D also wrote about this announcement and their article includes a link to a Siemens PDF showing how Mentor fits within their portfolio of technology.
    • Mentor Graphics also announced a new release of FloEFD.
  • The 25th Annual Conference of the CFD Society of Canada will be held 18-21 June 2017 in Windsor, Ontario. The due date for extended (4-6 page) abstracts is 09 January 2017.
  • The 12th OpenFOAM Workshop will be held 24-27 July 2017 at the University of Exeter in the UK. [Sorry, no URL yet.]
  • Here’s a good summary of the 2016 FloEFD Simulation Conference from earlier this month. In this article you’ll read that their 2017 event will be in Berlin on 7-8 November.

Computing: Cloud, HPC, Exascale & More

This absolutely gorgeous image of a DEM simulation is from STAR-CCM+ v11.06. Image from Siemens. See link below.

This absolutely gorgeous image of a DEM simulation is from STAR-CCM+ v11.06. Image from Siemens. See link below.

Software

Applications

Alert reader Dan shared this image of the faceted styling of Logitech's MX Master wireless mouse. Click image for link.

Alert reader Dan shared this image of the faceted styling of Logitech’s MX Master wireless mouse. Click image for link.

Good Reading & Listening

  • 40% of women who earn an engineering degree either never enter or leave the field. Why? This HBR report cites evidence that women engineers are treated differently than their male peers, professors, and employers beginning in college and through internships. [I would appreciate reading comments on this from female engineers.]
  • The OpenFOAM Foundation launched a fundraising campaign to receive donations totaling €100,000 to fund the software’s development in 2017. The rationale for the foundation’s fundraising effort seem to be explained by a series of blog posts from CFD Direct.
  • The first two episodes of the new season of the Talking CFD Podcast are available for your listening pleasure. They’re with Kelly Senecal of Convergent Science and Nicolas Tonello of Renuda.

Geometry in the Wild

The fine folks at Colossal often feed my fetish for finding meshes, facets, and plain old geometry in art, nature, design, and just in real life (IRL) in general. Their article about the light installations of Nicolas Rivals is no exception. The juxtaposition of hard-edged, artificially-lit geometry and serene, dusky natural settings is quite arresting. More of the artist’s works can be found on his website.

La Linea Roja by Nicolas Rivals. Image from Colossal. See link above.

La Linea Roja by Nicolas Rivals. Image from Colossal. See link above.

Bonus: Behold the miracle of nature’s meshing as this mushroom extrudes a polygonal surface mesh. source

mushroom-poly-mesh

*Yesterday was the Thanksgiving Day holiday here in the U.S. where the tradition is to eat turkey with all the trimmings – and a lot of it.
Posted in Applications, Events, Hardware, News, Software | Tagged , , , , , , , , , , , , , , , , , , , | Leave a comment

I’m Simon Hubbard and This Is How I Mesh

Simon Hubbard, Lead CFD Process Engineer at Manor Racing.

Simon Hubbard, Lead CFD Process Engineer at Manor Racing.

I was born in Harrow in North London, which I don’t remember too much of as my parents moved to Leighton Buzzard (strangely linked to North London through its use as a pun name for the North London based pub rock band the Leyton Buzzards). Growing up I always liked cars and planes and figuring out how things worked. I raced 1/10th scale off-road RC cars (one of these, but from 1992) for a while, something I’m thinking about getting back into, whilst harbouring desires for an aero or helicopter equivalent (which I never quite had enough money for). My A-level physics project was to measure the deceleration of my RC car on surfaces with varying grip levels.

I carried on this theme studying Mechanical Engineering at Leeds for three years where I enjoyed the CFD course and did a final year project using CFX (version four, maybe…). I remember the pain involved in setting up a 2D model of the flow over a NACA airfoil and many afternoons spent fighting with boundary conditions.

My next stop took me to the then British Aerospace in Warton to work in the military aircraft and aerostructures department. I learnt a lot about real engineering but really wanted to be a bit closer to the physics. After a spell in the Future Projects Group characterising reusable launch vehicles for space applications (if you spend a little time researching the HOTOL space vehicle concept, you will see where the SABRE engine started), it was back to academia to look at wingtip trailing vortices at Imperial College using CFD.

My Ph.D. was a lot of fun and hard work. My focus was on computationally efficient methods. A lot of my simulations ran on a single core 1.6GHz chip accessing 512MB of RAM. Those were the days! I wrote a quasi-3D solver which was efficient as a result of being able to treat one of the space dimensions as being time-like so you could then march through space in this dimension in the same way as you do through time for unsteady simulations. Essentially, this makes the 3D problem a succession of 2D problems. The prerequisite are cases where you have a dominant flow in one of the spatial coordinate directions so that information can only flow in one direction. This makes the governing equations parabolic rather than elliptic. This work, combined with some details of turbulence modelling of vortices, and a look at vortex methods, made for a rewarding four years.

I spent three years as part of the CFD group at the BAR Honda and then Honda F1 team, which at the time was split into F1 folk and people doing external consultancy work. My main project was working on reducing drag for the British Olympics team in the development cycle for the Beijing Olympics. This was a great project as I got to do the CFD and then validate it in the wind tunnel and see the final designs tested at Manchester Velodrome (more on this later).

I did some further work on sportscars in the American LeMans series in the USA for the group that later went on to do the all-CFD Virgin F1 car. It still frustrates me how inaccurate much of the material in the media is on this subject. Next I went off to do something completely different for a while. I spent a year helping a local company develop their simulation and testing practices, lead their design group in the field of temperature controlled packaging, and then spent three years developing computational methods and tools for a piezoelectric inkjet manufacturer. I’d been tinkering with OpenFOAM for a while and it was here that I got to use and develop it, in anger, in the real world. This year I came back into F1 and am now helping Manor Racing with their OpenFOAM process.

  • Location: I live in Cranfield in Bedfordshire. It’s a nice village in the Home Counties countryside. I live on the other side of the airfield to the University. It’s nice to cycle through the campus and see some of the roads and buildings named after famous academics. I particularly enjoy going past Lanchester Hall, named after the English polymath who developed some of the first theories of lift and trailing vortex formation.
  • Current position: Lead CFD Process Engineer at Manor Racing
  • Current computer: Windows 7 laptop, Intel i7 2.6GHz, 16GB RAM and a Linux workstation (over VNC), Xeon, 32 cores, 512GB RAM
  • One word that best describes how you work: All-or-nothing

How do you know Pointwise?

I’ve known about Pointwise for a long time, but never had the chance to use the software. That’s mostly been due to the places I’ve worked, and it does maybe seem a little underrepresented in the UK. A lot of folk here seem to use ANSA from Beta CAE as a high end pre-processor. It’d be neat to have a go with Pointwise and see how it fares.

What do you see are the biggest challenges facing CFD in the next 5 years?

I’m worried that there aren’t enough people with good CFD domain competence to keep up with the rapid growth of CFD availability and reduction in cost effectiveness through cloud HPC. It’s a great tool that can add so much economic value across a range of applications and I wouldn’t want this to be limited by there not being enough people to support its proper use in industry – people who know which turbulence model to use, when to stop worrying about mesh dependency, etc. – and the potential not reached because of too many otherwise preventable mistakes and inappropriate use.

What are you currently working on?

Obviously, with the industry I’m in, I can’t say too much in detail here. I’m constantly trying to make the CFD process at Manor more efficient and accurate.

What project are you most proud of and why?

The cycling drag reduction project for UK Sport in the development cycle for the Beijing Olympics really stands out for me. From a technical perspective we made some innovative development to the CFD process to capture the effects of transition before specific transitional turbulence models were available. I was also involved in the whole development cycle. This involved performing the CFD, going to the wind tunnel, and then the velodrome, to see the design modifications we were making through each of the testing environments.

Are you reading any interesting technical papers we should know about?

Nothing novel at the moment. I’m mostly looking at papers for turbulence model applications in OpenFOAM.

What software or tools do you use every day?

ANSA, OpenFOAM, ParaView. Text editors gedit and vi for scripting and OpenFOAM dictionaries. I do a little data analysis in Scilab and I spend a lot of my time in a bash terminal. And Google Chrome pretty much goes everywhere I do whether at home or work.

What does your workspace look like?

Simon's current workspace.

Simon’s current workspace.

Do you plan on attending any conferences or workshops this year?

I went to the ESI OpenFOAM conference in Cologne last month. It was great to see a presentation by Professor Spalding on the future of CFD. I was impressed with the diversity covering all relevant aspects from meshing to solving, as well as application and HPC performance. I’m hoping to go to the 12th OpenFOAM Workshop in Exeter next year.

What do you do outside the world of CFD?

I try to spend as much time as I can with my family. Sometimes that’s days out or events. And sometimes it’s just hanging out together doing something or nothing. I also like road cycling having spent much of my teenage years out in the countryside with friends and an OS map. This year I cycled from Land’s End to John o’Groats in 14 days. Bristol was very wet and Scotland was gorgeous.

What is some of the best CFD advice you’ve ever received?

It wasn’t so much direct advice, but I remain indebted to my Ph.D. supervisor who took me down the path of writing my own CFD code when a fair amount of Ph.Ds. were being done with commercial codes. Since then, I’ve always been an advocate of taking some time to understand exactly what the code is doing – it pretty much always pays off later on.

If you had to pick a place to have dinner, where would you go?

The Equinox restaurant at the top of the Raffles tower in Singapore. The food is great and the views are amazing.

Posted in People & Places | Tagged , , , , , , , , , , , , , , | Leave a comment

The Connector Newsletter for 2016 Q4

The 2016 4th Quarter issue of our The Connector newsletter is now available on our website at www.pointwise.com/theconnector/2016-Q4. This issue features articles on

the-connector-2016-q4-social-sharing

Posted in News | Tagged | Leave a comment