PADT Turns 20 Today

PADt-20-Logo-Rect-500wAt 11:06 am on March 7, 1994 a clerk at the Arizona Corporation Commission placed their stamp on stack of paper titled: “Articles of Incorporation of Phoenix Analysis & Design Technologies, Inc.” and a new company, and a new path in life for many people, was started.

2013-07-29 18.20.36Before that moment it had all been talk and ideas, now it was real. Still working their day jobs, the four founders spent their evenings and weekends trying to figure out how to convince customers to hire them, how to get computers to run ANSYS on, and how to raise money to buy a Stereolithography machine. Friends and Family stepped up and invested their money along with the founder’s savings to fund the crazy idea with an (in hindsight) incredibly long name.

After two decades PADT is now established and thriving, investing in other companies, and expanding into new geographies and businesses.  We could not have done it without all of the employees that have worked here through the years, the support of everyone’s family, our software and hardware partners, and of course our very loyal customers.  

There were a lot of reasons why we started PADT, and everyone that has joined us through the years has had their own impetus.  But, one common purpose motivated us in those early days, and still motivates us today:  to create a place where everyone actually wanted to go to in the morning.  That motivation will not make any business books, it has not made anyone super rich, nor will it make PADT the darling of Wall Street.    

What we can say is that after twenty years of going to work day after day, we can look back and confidently state that it is a motivation that still works today, and still makes for a more rewarding work life than many of our peers have experienced over the same two decades.

PADT-Offices
We want to thank everyone that has been on this journey with us. Everyone that has allowed us to make a living doing what we like to do, learning new things every day, and spending it with such fantastic people. 


#padt20

Comprehensive Online Course on 3D Printing Added to Lynda.com

The other day I got an email from Brenda Newhouse, the very talented owner of Newhouse Studios who helped us design and build the PADT website, on a link she had found on Lynda.com for a course on 3D Printing. Our to-do list always contained “produce comprehensive 3D printing online course” but we never got around to it. Now we don’t have to. (yay!)
up-and-running-with-3d-printing
The people at Lynda.com have created a really nice course that shocked us in its detail and accuracy, at least the parts we could look at for free. The listing of topics backs this up.  With the recent hype around 3D Printing, we often see postings that are mostly hyperbole or just wrong. Kacie Hultgren, the creator of this course, really knows what she is doing and covers all of the bases.  The production looks very professional as well… certainly not someone holding a phone while their buddy talks. 

You can get an overview here:

http://www.lynda.com/3D-Animation-Prototyping-tutorials/Up-Running-3D-Printing/151814-2.html 

It looks like Lynda.com charges $25/month, which is very reasonable.  If you are new to 3D Printing and want to learn more, this looks to be a great place to start.

New Open Position at PADT: Product Design Engineer

PADT Employees

We thought we were catching up by recently filling two open positions: CFD Simulation Engineer and a sales position in Utah.  But then another opportunity opened up to add a full time Product Design Engineer in support of PADT’s line of products for cleaning additive manufacturing parts.  Although this position will work with our Product Development team, it is actually part of our advanced manufacturing group since the role focuses exclusively on a single product line which that group designs, manufactures, and supports.   The job description is listed below, and can be found on our Careers Page along with the other currently open positions:

Electrical Engineer/Project Lead 
IT Support Engineer
Sales Support Specialist, 3D Printing
Product Design Engineer

Follow the directions on the Careers Page to apply. And by all means, feel free to pass this along to anyone you think might be interested.

Product Design Engineer

Job Overview:

This position primarily performs electro-mechanical engineering design, development, and validation for circulating tank products used alongside 3D Printing equipment. The product design engineer reports to the product manager and develops detailed requirements; creates the design in CAD; performs design analyses as needed; selects materials and components; creates component specifications and procures prototypes; works together with other engineering specialties and manufacturing to optimize performance, ease-of-use, reliability, and cost in the context of the overall product requirements.

Specific Tasks:

  • Design and develop new products or improvements to existing products, based on product requirements in collaboration with electrical engineering, industrial design, manufacturing, and other expertise as needed
  • Assist in development of proof-of-concept tests; procure parts and assemble test rigs; perform testing
  • Construct designs and engineering drawings in CAD files used by engineering and manufacturing
  • Generate component specifications, BOMs, and other required product documentation
  • Work with suppliers to develop unique components or understand component limitations
  • Help develop product validation and durability tests
  • Produce and maintain design-related documentation such as design analyses, CAD drawings, BOMs, technical specifications, and test results
  • Troubleshoot production engineering problems when requested; document changes

Desired Skills and Experience:

  • BSME with a minimum 10 yrs experience in electro-mechanical product design
  • Experience with electronic controls, US made band heating elements, motors, fasteners and design for manufacturability a plus
  • Knowledge of manufacturing and assembly processes and variation
  • Comfortable working in a team environment to produce a design
  • Proficient in SolidWorks 3D (preferred) or similar CAD tool
  • Strong written and verbal communications skills

Caps and Limits on Hardware Resources in Microsoft Windows and Red Hat Enterprise Linux

windows-caps(Revised and updated February 10, 2014 to include pertinent, relevant Windows Server 2012 information as it relates to the world of numerical simulation)

Hi – One of our more popular blog articles from January 14, 2011. It has been over three years now and the blog article needs a refresh. It seems that as operating system provider’s release a new OS iteration, for Windows Operating System or Linux, that this may contribute to confusion when selecting the proper licensing for the numerical simulation computers physical hardware.

Hopefully this updated blog article will assist you in making sure your numerical simulation machines are licensed properly.

Sometime around 3am in October 2010. I found myself beating my head up against a server rack. I was frustrated with trying to figure out what was limiting my server hardware. I was aware of a couple limits that Microsoft had placed into its OS software. However, I had no idea how far reaching the limits were. I researched into two manufactures of two of the most used Operating Systems on the planet. I figured it would be best if I had a better understanding of these hardware limits. The physical socket and memory limit caps that are placed on the hardware by two of the most popular Operating Systems on the planet: Microsoft Windows 7, Windows Server 2008 R2, Windows Server 2012 and Red Hat Enterprise Linux.

So now let us fast-forward over three years, not much has changed because change is constant. The new Windows Server 2012 changes up the naming convention on us IT geeks. So pay attention because the Windows Server Standard or Enterprise edition you may have been used to has changed.

Limits on Cores, RAM, and USERS by Operating System

  • Microsoft Windows Operating Systems
    • Windows 7
      • Professional / Enterprise / Ultimate
        • Processor: 2 Socket limit (many cores)
        • Core limits:
          • 64-bit: 256 max quantity of cores in 1 physical processor
          • 32-bit: 32 cores max quantity of cores in 1 physical processor
        • RAM: 192 GB limit to amount of accessible
      • Home Premium
        • RAM: 16GB
      • Home Basic
        • RAM: 8GB
      • Starter Edition
        • RAM: 2 GB
    • Windows Server 2008
      • Standard & R2
        • Processor: 4 socket limit – (many cores)
          • (4 – Parts x 12core) = 48 cores
        • RAM: 32 GB
      • Windows Server 2008 R2 Foundation  (R2 releases are 64-bit only)
        • RAM: 128 GB
      • HPC Edition 2008 R2 (R2 releases are 64-bit only)
        • RAM: 128 GB
      • Windows Server 2008 R2 Datacenter (R2 releases are 64-bit only)
        • Processor: 8 socket limit
        • RAM: 2TB
      • Windows Server 2008 R2 Enterprise (R2 releases are 64-bit only)
        • Processor: 8 socket limit
        • RAM: 2TB
    • Windows Server 2012
      • Foundation
        • Processor: 1 socket licensed – (many cores)
        • RAM: 32 GB
        • User Limit: 15 users
      • Essentials
        • Processor: 2 socket licensed – (many cores)
        • RAM: 64 GB
        • User Limit: 25 users
      • Standard
        • Processor:  4 socket licensed* – (many cores)
        • RAM: 4TB
        • User Limit: unlimited
      • Datacenter
        • Processor: 4 socket licensed* – (many cores)
        • RAM: 4TB
        • User Limit: unlimited
      • R2
        • Processor: 4 socket licensed* – (many cores)
        • RAM: 4TB
        • User Limit: unlimited
  • Red Hat Enterprise Linux – 64-bit
    • Red Hat defines a logical CPU as any schedulable entity. So every core/thread in a multi-core/thread processor is a logical CPU
    • This information is by Product default.  Not the maximums of a fully licensed/subscribed REHL product.
    • Desktop
      • Processor: 1-2 CPU
      • RAM: 64 GB
    • Basic
      • Processor: 1-2 CPU
      • RAM: 16 GB
    • Enterprise
      • Processor: 1-8 CPU
      • RAM: 64 GB
    • NOTE: Red Hat would be happy to create custom subscriptions with yearly fees for other configurations to fit your specific environment. Please contact Red Hat to check on costs.

Okay great but what operating system platforms can I use with ANSYS R15?

ANSYS 15.0 Supported Platforms

ANSYS 15.0 is the currently released version. The specific operating system versions supported by ANSYS 15.0 products and License Manager are documented and posted at: 
   www.ansys.com/Support/Platform+Support.

ANSYS 15.0 includes support for the following:

  • Windows XP and Windows 7 (32-bit and 64-bit Professional and Enterprise versions)
  • Windows 8 (64-bit Professional and Enterprise versions)
  • Windows Server 2008 R2 Enterprise
  • Windows HPC Server 2008 R2 (64-bit)
  • Windows Server 2012 Standard version
  • Red Hat Enterprise Linux (RHEL) 5.7-5.9 and 6.2-6.4 (64-bit)
  • SUSE Enterprise Linux Server and Desktop (SLES / SLED) 11 SP1-SP2 (64-bit)

Not all applications are supported on all of these platforms. See detailed information, by product, at the URL noted above.

Final Thoughts

Approximate additional licensing cost to License Windows Server 2012 for a Quad Socket CPU motherboard:

  • Windows Server 2012 Foundation: Please call your OEM partner
  • Windows Server 2012 Essentials: $429 + User Client Access Licensing $$$
  • Windows Server 2012 Standard:  $ 1,500  + User Client Access Licensing $$$
  • Windows Server 2012 Datacenter: $ 10,500 + User Client Access Licensing $$$

References

 

Happy (nerdy) Valentine’s Day

Valentines-day
We could not pass up trying out one of the online aps that generate Valentine’s Day candy hearts. 

Good fun.  It didn’t take long to find a FFT for a standard heart beat (the equation) and maybe only the rotating machinery types among you will get the blue one’s message. 

Happy Valentine’s Day to everyone!

Time and Date Set for PADT’s 20th Anniversary Party

PADt-20-Logo-Rect-500wPADT’s anniversary party committee (yes, there are some “The Office” similarities) has been busy planning and making preliminary arrangements.  The date and time have been set.

The invitations will go out the first week in March, but you do not have to wait to put it on your calendar:

PADT’s 20th Anniversary Party

When April 10, 2014
5:30 pm – 9:00 pm
   
Where PADT’s Tempe Office
ASU Research Park
7755 S Research Dr, Suite 110
Tempe, AZ 85284

You can enter it yourself or add it via an iCal file with this link.  

You can also learn more at www.padtinc.com/20

We are sampling food from food trucks this week and will be making our choice on the catering soon.  This will be a fun and meaningful event for us, and we hope that as many of you as possible will join.

#padt20

Another Job Opening at PADT: Sales Support Specialist, 3D Printing

PADt-20-Logo-Rect-500wPADT had a record year in 2013 reselling and supporting Additive Manufacturing (3D Printing) systems from Stratasys.  So good, that our team was swamped with all of the activity, especially as Stratasys continues to add new systems and materials.  In order to make 2014 another fantastic year in this area, we have opened a new position: Sales Support Specialist, 3D Printing.  This person will work with sales management, the salespeople, our suppliers, and our admin staff to make the whole process more efficient, and to allow us to be more responsive to our customers needs.  Here is the description for the position:

Sales Support Specialist, 3D Printing

PADT, the Southwest’s leading provider of engineering products and services, has an immediate opening within our 3D Printer sales team for the position of Sales Support Specialist.  This position will report to the manager of the team and has three roles focused on helping the sales team run effectively, efficiently, and exceed business objectives. The first role is to maintain the relationship between PADT and the hardware suppliers that PADT resells for by managing and coordinating the flow of information between parties. The second role includes planning and organizing marketing activities for the products being sold.  This includes providing assistance to the sales team across four states by scheduling and managing technical and administrative resources.  The final role is to work as an inside salesperson, frequently contacting existing customers to sell 3D printing material, maintenance contracts, and other services.  Time will be spent evenly working within these three responsibilities. 

Requirements:

  • BS or equivalent degree
  • Inside sales experience
  • Self-directed, proactive, and very organized
  • Able to communicate quickly and effectively both verbally and in writing
  • Enjoys and is good at multitasking
  • Strong Microsoft Office skills
  • Comfortable making a large number of phone calls
  • Experience coordinating marketing activities such as: trade shows, mailing campaigns, seminars, etc…
  • Enjoys being involved in new, leading edge technology

Preferred but not required

  • Outside sales experience

This position is located at PADT’s Tempe, AZ facility and all applicants must be US Citizens or Legal Residents.

You can also see the position, along with our other open postings and how to apply, on our career page.

Our current openings are:

3D Color Printing: Stratasys Publishes Nice White Paper on Maximizing Multi-Material and Color 3D Printing

connex3-machine
Stratasys just released a nice white paper on the uses of their new color technology in the Objet500 Connex3 system.  This machine is more than just a way to print parts in a variety of colors, it allows you to load three different materials, including colors. 
3D-Color-Printing-Colors-1The paper goes in to some detail on how the technology works, what the advantages are, and offers some use cases where beta testers in industry were able to apply the technology on their projects.  If you are interested in 3D Printing in general, and printing color parts in particular, you should download the white paper.

 3D-Color-Printing-Pressure-Contour-1As always, if you can contact PADT at 480.813.4884 or sales@padtinc.com. Or visit our website.

Triplex-Helmet_960x350

Help! My New HPC System is not High Performance!

It is an all too common feeling, that sinking feeling that leads to the phrase “Oh Crap” being muttered under your breath. You just spent almost a year getting management to pay for a new compute workstation, server or cluster. You did the ROI and showed an eight-month payback because of how much faster your team’s runs will be. But now you have the benchmark data on real models, and they are not good. “Oh Crap”

Although a frequent problem, and the root causes are often the same, the solutions can very. In this posting I will try and share with you what our IT and ANSYS technical support staff here at PADT have learned.

Hopefully this article can help you learn what to do to avoid or circumvent any future or current pitfalls if you order an HPC system. PADT loves numerical simulation, we have been doing this for twenty years now. We enjoy helping, and if you are stuck in this situation let us know.

Wall Clock Time

It is very easy to get excited about clock speeds, bus bandwidth, and disk access latency. But if you are solving large FEA or CFD models you really only care about one thing. Wall Clock Time. We cannot tell you how many times we have worked with customers, hardware vendors, and sometimes developers, who get all wrapped up in the optimization of one little aspect of the solving process. The problem with this is that high performance computing is about working in a system, and the system is only as good as its weakest link.

We see people spend thousands on disk drives and high speed disk controllers but come to discover that their solves are CPU bound, adding better disk drives makes no difference. We also see people blow their budget on the very best CPU’s but don’t invest in enough memory to solve their problems in-core. This often happens because when they look at benchmark data they look at one small portion and maximize that measurement, when that measurement often doesn’t really matter.

The fundamental thing that you need to keep in mind while ordering or fixing an HPC system for numerical simulation is this: all that matters is how long it takes in the real world from when you click “Solve” till your job is finished. I bring this up first because it is so fundamental, and so often ignored.

The Causes

As mentioned above, an HPC server or cluster is a system made up of hardware, software, and people who support it. And it is only as good as its weakest link. The key to designing or fixing your HPC system is to look at it as a system, find the weakest links, and improve that links performance. (OK, who remembers the “Weakest Link” lady? You know you kind of miss her…)

In our experience we have found that the cause for most poorly performing systems can be grouped into one of these categories:

  • Unbalanced System for the Problems Being Solved:

    One of the components in the system cannot keep up with the others. This can be hardware or software. More often than not it is the hardware being used. Let’s take a quick look at several gotchas in a misconfigured numerical simulation machine.

  • I/O is a Bottleneck
    Number crunching, memory, and storage are only as fast as the devices that transfer data between them.
  • Configured Wrong

    Out of simple lack of experience the wrong hardware is used, the OS settings are wrong, or drivers are not configured properly.

  • Unnecessary Stuff Added out of Fear

    People tend to overcompensate out of fear that something bad might happen, so they burden a system with software and redundant hardware to avoid a one in a hundred chance of failure, and slow down the other ninety-nine runs in the process.

Avoiding an Expensive Medium Performance Computing (MPC) System

The key to avoiding these situations is to work with an expert who knows the hardware AND the software, or become that expert yourself. That starts with reading the ANSYS documentation, which is fairly complete and detailed.

Often times your hardware provider will present themselves as the expert, and their heart may be in the right place. But only a handful of hardware providers really understand HPC for simulation. Most simply try and sell you the “best” configuration you can afford and don’t understand the causes of poor performance listed above. More often than we like, they sell a system that is great for databases, web serving, or virtual machines. That is not what you need.

A true numerical simulation hardware or software expert should ask you questions about the following, if they don’t, you should move on:

  • What solver will you use the most?
  • What is more important, cost or performance? Or better: Where do you want to be on the cost vs. performance curve?
  • How much scratch space do you need during a solve? How much storage do you need for the files you keep from a run?
  • How will you be accessing the systems, sending data back and forth, and managing your runs?

Another good test of an expert is if you have both FEA and CFD needs, they should not recommend a single system for you. You may be constrained by budget, but an expert should know the difference between the two solvers vis-à-vis HPC and design separate solutions for each.

If they push virtual machines on you, show them the door.

The next thing you should do is step back and take the advice of writing instructors. Start cutting stuff. (I know, if you have read my blog posts for a while, you know I’m not practicing what I preach. But you should see the first drafts…) You really don’t need huge costly UPS’, the expensive archival backup system, or some arctic chill bubbling liquid nitrogen cooling system. Think of it as a race car, if it doesn’t make the car go faster or keep the driver safe, you don’t need it.

A hard but important step in cutting things down to the basics is to try and let go of the emotional aspect. It is in many ways like picking out a car and the truth is, the red paint job doesn’t make it go any faster, and the fancy tail pipes will look good, but also don’t help. Don’t design for the worst-case model either. If 90% of your models run in 32GB or RAM, don’t do a 128GB system for that one run you need to do a year that is that big. Suffer a slow solve on that one and use the money to get a faster CPU, a better disk array, or maybe a second box.

Pull back, be an engineer, and just get what you need. Tape robots look cool, blinky lights and flashy plastic case covers even cooler. Do you really need that? Most of time the numerical simulation cruncher is locked up in a cold dark room. Having an intern move data to USB drives once a month may be a more practical solution.

Another aspect of cutting back is dealing with that fear thing. The most common mistake we see is people using RAID configurations for storing redundant data, not read/write speed. Turn off that redundant writing and dump across as many drives as you can in parallel, RAID 0. Yes you may lose a drive. Yes that means you lose a run. But if that happens once every six months, which is very unlikely, the lost productivity from those lost runs is small compared to the lost productivity of solving all those other runs on a slow disk array.

Intel-AMD-Flunet-Part2-Chart2Lastly, benchmark. This is obvious but often hard to do right. The key is to find real problems that represent a spectrum of the runs you plan on doing. Often different runs, even within the same solver, have different HPC needs. It is a good idea to understand which are more common and bias your design to those. Do not benchmark with standard benchmarks, use industry accepted benchmarks for numerical simulation. Yes it’s an amazing feeling knowing that your new cluster is number 500 on the Top 500 list. However if it is number 5000 on the ANSYS Numerical simulation benchmark list nobody wins.

Fixing the System You Have

As of late we have started tearing down clusters in numerous companies around the US. Of course we would love to sell you new hardware however at PADT, as mentioned before, we love numerical simulation. Fixing your current system may allow you to stretch that investment another year or more. As a co-owner of a twenty year old company, this makes me feel good about that initial investment. When we sick our IT team on extending the life of one of our systems, I start thinking about and planning for that next $150k investment we will need to do in a year or more.

Breathing new life into your existing hardware basically requires almost the same steps as avoiding a bad system in the first place. PADT has sent our team around the country helping companies breath new life into their existing infrastructure. The steps they use are the same but instead of designing stuff, we change things. Work with an expert, start cutting stuff out, breath new life into the growing old hardware, avoid fear and “cool factor” based choices, and verify everything.

Take a look and understand the output from your solvers, there is a lot of data in there. As an example, here is an article we wrote describing some of those hidden gems within your numerical simulation outputs. http://www.padtinc.com/blog/the-focus/ansys-mechanical-io-bound-cpu-bound

Play with things, see what helps and what hurts. It may be time to bring in an outside expert to look at things with fresh eyes.

Do not be afraid to push back against what IT is suggesting, unless you are very fortunate, they probably don’t have the same understanding as you do when it comes to numerical simulation computing. They care about security and minimizing the cost of maintaining systems. They may not be risk takers and they don’t like non-standard solutions. All of these can often result in a system that is configured for IT, and not fast numerical simulation solves. You may have to bring in senior management to solve this issue.

PADT is Here to Help

Cube_Logo_Target1The easiest way to avoid all of this is to simply purchase your HPC hardware from PADT.  We know simulation, we know HPC, and we can translate between engineers and IT.  This is simply because simulation is what we do, and have done since 1994.   We can configure the right system to meet your needs, at that point on the price performance curve you want.  Our CUBE systems also come preloaded and tested with your simulation software, so you don’t have to worry about getting things to work once the hardware shows up.

If you already have a system or are locked in to a provider, we are still here to help.  Our system architects can consult over the phone or in person, bringing their expertise to the table on fixing existing systems or spec’ing new ones.  In fact, the idea for this article came when our IT manager was reconfiguring a customer’s “name brand” cluster here in Phoenix, and he got a call from a user in the Midwest that had the exact same problem.  Lots of expensive hardware, and disappointing performance. They both had the wrong hardware for their problems, system bottlenecks, and configuration issues.

Learn more on our HPC Server and Cluster Performance Tuning page, or by contacting us. We would love to help out. It is what we like to do and we are good at it.

I’m All Bound Up! : A Brief Discussion on What It Means To Be Compute Bound or I/O Bound

CUBE-HVPC-512-core-closeup2-1000hWe often get questions from our customers, both ANSYS product and CUBE HVPC users, on how to get their jobs to run faster. Should they get better disk drives or focus on CPU performance. We have found that disk drive performance often gets the blame when it is undeserving. To help figure this out, the first thing we do t is look at the output from an ANSYS Mechanical/Mechanical APDL run. Here is an email, slightly modified to leave the user anonymous, that shows our most recent case of this:

From: David Mastel – PADT, Inc.
To: John Engineering

Subject: Re: Re: Re: Relatively no difference between SSD vs. SAS2 15k RPM solve times?

Hi John, so I took a look at your ANSYS Mechanical output files – Based on the problem you are running the machine is Compute Bound. Here is the process on how I came to that conclusion. Additionally, at the end of this email I have included a few recommendations.

All the best,
David

Example 1:

The bottom section of an ANSYS out file for a 2 x 240GB
Samsung 843 SSD RAID0 array:

Total CPU time for main thread                    :      105.9 seconds
Total CPU time summed for all threads             :      119.1 seconds

Elapsed time spent pre-processing model (/PREP7)  :        0.0 seconds
Elapsed time spent solution – preprocessing       :       10.3 seconds
Elapsed time spent computing solution             :       83.5 seconds
Elapsed time spent solution – postprocessing      :        3.9 seconds
Elapsed time spent post-processing model (/POST1) :        0.0 seconds

Equation solver computational rate                :   319444.9 Mflops
Equation solver effective I/O rate                :    26540.1 MB/sec

Maximum total memory used                         :    48999.0 MB
Maximum total memory allocated                    :    54896.0 MB
Maximum total memory available                    :        128 GB

+—— E N D   D I S T R I B U T E D   A N S Y S   S T A T I S T I C S ——-+

*—————————————————————————*
|                                                                           |
|                       DISTRIBUTED ANSYS RUN COMPLETED                     |
|                                                                           |
|—————————————————————————|
|                                                                           |
|            Release 14.5.7         UP20130316         WINDOWS x64          |
|                                                                           |
|—————————————————————————|
|                                                                           |
| Database Requested(-db)   512 MB    Scratch Memory Requested       512 MB |
| Maximum Database Used     447 MB    Maximum Scratch Memory Used   4523 MB |
|                                                                           |
|—————————————————————————|
|                                                                           |
|        CP Time      (sec) =        119.01       Time  =  15:41:54         |
|        Elapsed Time (sec) =        117.000       Date  =  10/21/2013      |
|                                                                           |
*—————————————————————————*

For a quick refresher on what it means to be compute bound or I/O bound, let’s review what ANSYS Mechanical APDL tells you.

When looking at your ANSYS Mechanical APDL (this file is created during the solve in ANSYS Mechanical, since ANSYS Mechanical is just running ANSYS Mechanical APDL behind the scenes) out files; I/O bound and Compute bound are essentially the following:

I/O Bound:

  1. When Elapsed Time greater than Main Thread CPU time

Compute Bound:

  1. When Elapsed time is equals (approx) to Main Thread CPU time

Example 2:
CUBE HVPC – Samsung 843 – 240GB SATA III SSD 6Gbps – RAID 0
Total CPU time for main thread :  105.9  seconds
Elapsed Time (sec) :   117.000        seconds

CUBE HVPC – Hitachi 600GB SAS2 15k RPM – RAID 0
Total CPU time for main thread  :  109.0 seconds
Elapsed Time (sec) :   120.000       seconds

Recommendations for a CPU compute bound ANSYS server or workstation:

When computers are compute bound I normally recommend the following.

  1. Add faster processors – check!
  2. Use more cores for solve – I think you are in the process of doing this now?
  3. Instead of running SMP go DMP – unable to use DMP with your solve
  4. Add an Accelerator card (NVidia Tesla K20x). Which unfortunately does not help in your particular solving situation.

Please let me know if you need any further information:

David

David Mastel
Manager, Information Technology

Phoenix Analysis & Design Technologies
7755 S. Research Dr, Suite 110
Tempe, AZ  85284
David.Mastel@PADTINC.com

The hardware we have available changes every couple of months or so, but right now, for a user who is running this type of ANSYS Mechanical/Mechanical APDL model, we are recommending the following configuration:

CUBE HVPC Recommended Workstation for ANSYS Mechanical: CUBE HVPC w16-KGPU

CUBE HVPC
MODEL

COST

CHASIS

PROCESSOR

CORES

MEMORY

CUBE HVPC
w16i-kgpu

$ 16,164.00

Mid-Tower
(black quiet edition)

Dual Socket INTEL XEON
e5-2687 v2,
16 cores
@ 3.4GHz

16 = 2 x 8

128GB DDR3-1866 ECC REG

STORAGE

RAID
CONTROLLER

GRAPHICS

ACCELERATOR

OS

OTHER

4 x 240GB
SATA II SSD 6 Gbps
2 x 600GB
SAS2 6Gbps
(2.1 TB)

SMC LSI 2208
6Gbps

NVIDIA
QUADRO K5000

NVIDIA
TESLA K20

Microsoft
Windows 7
Professional 64-bit

ANSYS R14.5.7
ANSYS R15

Cube_logo_Trg_Wide_150w

Here are some references to the some basic information and the systems we recommend:
http://www.intel.com
http://en.wikipedia.org/wiki/CPU_bound
http://en.wikipedia.org/wiki/I/O_bound
http://www.supermicro.com
http://www.cube-hvpc.com
http://www.ansys.com
http://www.nvidia.com

ANSYS & 3D Printing: Converting your ANSYS Mechanical or MAPDL Model into an STL File

image3D printing is all the rage these days.  PADT has been involved in what should be called Additive Manufacturing since our founding twenty years ago.  So people in the ANSYS world often come to us for advice on things 3D Printer’ish.  And last week we got an email asking if we had a way to convert a deformed mesh into a STL file that can be used to print that deformed geometry.  This email caused neurons to fire that had not fired in some time. I remembered writing something but it was a long time ago.

Fortunately I have Google Desktop on my computer so I searched for ans2stl, knowing that I always called my translators ans2nnn of some kind. There it was.  Last updated in 2001, written in maybe 1995. C.  I guess I shouldn’t complain, it could have been FORTRAN. The notes say that the program has been successfully tested on Windows NT. That was a long time ago.

So I dusted it off and present it here as a way to get results from your ANSYS Mechanical or ANSYS Mechanical APDL model as a deformed STL file.

UPDATE – 7/8/2014

Since this article was written, we have done some more work with STL files. This Macro works fine on a tetrahedral mesh, but if you have hex elements, it won’t work – it assumes triangles on the face.  It also requires a macro and some ‘C’ code, which is an extra pain. So we wrote a more generic macro that works with Hex or Tet meshes, and writes the file directly. It can be a bit slow but no annoyingly slow.  We recommend you use this method instead of the ones outlined below.

Here is the macro:  writstl.zip

The Process

An STL file is basically a faceted representation of geometry. Triangles on the surface of your model. So to get an STL file of an FEA model, you simply need to generate triangles on your mesh face, write them out to a file, and convert them to an STL format.  If you want deformed geometry, simply use the UPGEOM command to move your nodes to the deformed position.

The Program

Here is the source code for the windows version of the program:

/*
---------------------------------------------------------------------------

 PADT--------------------------------------------------- Phoenix Analysis &
                                                        Design Technologies

---------------------------------------------------------------------------
                             www.padtinc.com
---------------------------------------------------------------------------

       Package: ans2stl

          File: ans2stl.c
          Args: rootname
        Author: Eric Miller, PADT
		(480) 813-4884 
		eric.miller@padtinc.com

	Simple program that takes the nodes and elements from the
	surface of an ANSYS FE model and converts it to a binary
	STL file.

	USAGE:
		Create and ANSYS surface mesh one of two ways:
			1: amesh the surface with triangles
			2: esurf an existing mesh with triangles
         	Write the triangle surface mesh out with nwrite/ewrite
		Run ans2stl with the rootname of the *.node and *.elem files
		   as the only argument
		This should create a binary STL file

	ASSUMPTIONS:
		The ANSYS elements are 4 noded shells (MESH200 is suggested)
		in triangular format (nodes 3 and 4 the same)

		This code has been succesfully compiled and tested
		on WindowsNT

		NOTE: There is a known issue on UNIX with byte order
				Please contact me if you need a UNIX version

	COMPILE:
		gcc -o ans2stl_win ans2stl_win.c

       10/31/01:       Cleaned up for release to XANSYS and such
       1/13/2014:	Yikes, its been 12+ years. A little update 
       			and publish on The Focus blog
			Checked it to see if it works with Windows 7. 
			It still compiles with GCC just fine.

---------------------------------------------------------------------------
PADT, Inc. provides this software to the general public as a curtesy.
Neither the company or its employees are responsible for the use or
accuracy of this software.  In short, it is free, and you get what
you pay for.
---------------------------------------------------------------------------
*/
/*======================================================

   SAMPLE ANSYS INPUT DECK THAT SHOWS USAGE

finish
/clear
/file,a2stest
/PREP7  
!----------
! Build silly geometry
BLC4,-0.6,0.35,1,-0.75,0.55 
SPH4,-0.8,-0.4,0.45 
CON4,-0.15,-0.55,0.05,0.35,0.55 
VADD,all
!------------------------
! Mesh surface with non-solved (MESH200) triangles
et,1,200,4
MSHAPE,1,2D   ! Use triangles for Areas
MSHKEY,0      ! Free mesh
SMRTSIZE,,,,,5
AMESH,all
!----------------------
! Write out nodes and elements
nwrite,a2stest,node
ewrite,a2stest,elem
!--------------------
! Execute the ans2stl program
/sys,ans2stl_win.exe a2stest

======================================================= */

#include 
#include 
#include 

typedef struct vertStruct *vert;
typedef struct facetStruct *facets;
typedef struct facetListStruct *facetList;

        int     ie[8][999999];
        float   coord[3][999999];
        int	np[999999];

struct vertStruct {
  float	x,y,z;
  float	nx,ny,nz;
  int  ivrt;
  facetList	firstFacet;
};

struct facetListStruct {
  facets	facet;
  facetList	next;
};

struct facetStruct {
  float	xn,yn,zn;
  vert	v1,v2,v3;
};

facets	theFacets;
vert	theVerts;

char	stlInpFile[80];
float	xmin,xmax,ymin,ymax,zmin,zmax;
float   ftrAngle;
int	nf,nv;  

void swapit();
void readBin();
void getnorm();
long readnodes();
long readelems();

/*--------------------------------*/
main(argc,argv)
     int argc;
     char *argv[];
{
  char nfname[255];
  char efname[255];
  char sfname[255];
  char s4[4];
  FILE	*sfile;
  int	nnode,nelem,i,i1,i2,i3;
  float	xn,yn,zn;

  if(argc <= 1){
        puts("Usage:  ans2stl file_root");
        exit(1);
  }
  sprintf(nfname,"%s.node",argv[1]);
  sprintf(efname,"%s.elem",argv[1]);
  sprintf(sfname,"%s.stl",argv[1]);

  nnode = readnodes(nfname);
  nelem = readelems(efname);
  nf = nelem;

  sfile = fopen(sfname,"wb");
  fwrite("PADT STL File, Solid Binary",80,1,sfile);
  swapit(&nelem,s4);    fwrite(s4,4,1,sfile);

  for(i=0;i<nelem;i++){ 
      i1 = np[ie[0][i]];
      i2 = np[ie[1][i]];
      i3 = np[ie[2][i]];
      getnorm(&xn,&yn,&zn,i1,i2,i3);

      swapit(&xn,s4);	fwrite(s4,4,1,sfile);
      swapit(&yn,s4);	fwrite(s4,4,1,sfile);
      swapit(&zn,s4);	fwrite(s4,4,1,sfile);

      swapit(&coord[0][i1],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[1][i1],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[2][i1],s4);	fwrite(s4,4,1,sfile);

      swapit(&coord[0][i2],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[1][i2],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[2][i2],s4);	fwrite(s4,4,1,sfile);

      swapit(&coord[0][i3],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[1][i3],s4);	fwrite(s4,4,1,sfile);
      swapit(&coord[2][i3],s4);	fwrite(s4,4,1,sfile);
      fwrite(s4,2,1,sfile);
  }
  fclose(sfile);
    puts(" ");
  printf("  STL Data Written to %s.stl \n",argv[1]);
    puts("  Done!!!!!!!!!");
  exit(0);
}

void  getnorm(xn,yn,zn,i1,i2,i3)
	float	*xn,*yn,*zn;
	int	i1,i2,i3;
{
	float	v1[3],v2[3];
	int	i;

        for(i=0;i<3;i++){
	  v1[i] = coord[i][i3] - coord[i][i2];
	  v2[i] = coord[i][i1] - coord[i][i2];
	}

	*xn = (v1[1]*v2[2]) - (v1[2]*v2[1]);
	*yn = (v1[2]*v2[0]) - (v1[0]*v2[2]);
	*zn = (v1[0]*v2[1]) - (v1[1]*v2[0]);
}
long readelems(fname)
        char    *fname;
{
        long num,i;
        FILE *nfile;
        char    string[256],s1[7];

        num = 0;
        nfile = fopen(fname,"r");
		if(!nfile){
			puts(" error on element file open, bye!");
			exit(1);
		}
        while(fgets(string,86,nfile)){
          for(i=0;i<8;i++){
            strncpy(s1,&string[6*i],6);
            s1[6] = '\0';
            sscanf(s1,"%d",&ie[i][num]);
          }
          num++;
        }

        printf("Number of element read: %d\n",num);
        return(num);
}

long readnodes(fname)
        char	*fname;
{
        FILE    *nfile;
        long     num,typeflag,nval,ifoo;
        char    string[256];

        num = 0;
        nfile = fopen(fname,"r");
		if(!nfile){
			puts(" error on node file open, bye!");
			exit(1);

		}
        while(fgets(string,100,nfile)){
          sscanf(string,"%d ",&nval);
          switch(nval){
            case(-888):
                typeflag = 1;
            break;
            case(-999):
                typeflag = 0;
            break;
            default:
                np[nval] = num;
                if(typeflag){
                        sscanf(string,"%d %g %g %g",
                           &ifoo,&coord[0][num],&coord[1][num],&coord[2][num]);
                }else{
                        sscanf(string,"%d %g %g %g",
                           &ifoo,&coord[0][num],&coord[1][num],&coord[2][num]);
                        fgets(string,81,nfile);
                }
num++;
            break;
        }

        }
        printf("Number of nodes read %d\n",num);
        return(num);

}

/* A Little ditty to swap the byte order, STL files are for DOS */
void swapit(s1,s2)
     char s1[4],s2[4];
{
  s2[0] = s1[0];
  s2[1] = s1[1];
  s2[2] = s1[2];
  s2[3] = s1[3];
}

ans2stl_win_2014_01_28.zip

Creating the Nodes and Elements

I’ve created a little example macro that can be used to make an STL of deformed geometry.  If you do not want the deformed geometry, simply remove or comment out the UPGEOM command.  This macro is good for MAPDL or ANSYS Mechanical, just comment out the last line  to use it with MAPDL:

et,999,200,4

type,999

esurf,all

finish ! exit whatever preprocessor your in

! move the RST file to a temp file for the UPCOORD. Comment out if you want

! the original geometry

/copy,file,rst,,stl_temp,rst

/prep7 ! Go in to PREP7

et,999,200,4 ! Create a dummy triangle element type, non-solved (200)

type,999 ! Make it the active type

esurf,all ! Surface mesh your model

!

! Update the geometry to the deformed shape

! The first argument is the scale factor, adjust to the appropriate level

! Comment this line out if you don’t want deformed geometry

upgeom,1000,,,stl_temp,rst

!

esel,type,999 ! Select those new elements

nelem ! Select the nodes associated with them

nwrite,stl_temp,node ! write the node file

ewrite,stl_temp,elem ! Write the element file

! Run the program to convert

! This assumes your executable in in c:\temp. If not, change to the proper

! location

/sys,c:\temp\ans2stl_win.exe stl_temp

! If this is a ANSYS Mechanical code snippet, then copy the resulting STL file up to

! the root directory for the project

! For MAPDL, Comment this line out.

/copy,stl_temp,stl,,stl_temp,stl,..\..

An Example

To prove this out using modern computing technology (remember, last time I used this was in 2001) I brought up my trusty valve body model and slammed 5000 lbs on one end, holding it on the top flange.  I then inserted the Commands object into the post processing branch:

image

When the model is solved, that command object will get executed after ANSYS is done doing all of its post processing, creating an STL of the deformed geometry. Here is what it looks like in the output file. You can see what it looks like when APDL executes the various commands:

/COPY FILE FROM FILE= file.rst

TO FILE= stl_temp.rst

FILE file.rst COPIED TO stl_temp.rst

1

***** ANSYS – ENGINEERING ANALYSIS SYSTEM RELEASE 15.0 *****

ANSYS Multiphysics

65420042 VERSION=WINDOWS x64 08:39:44 JAN 14, 2014 CP= 22.074

valve_stl–Static Structural (A5)

Note – This ANSYS version was linked by Licensee

***** ANSYS ANALYSIS DEFINITION (PREP7) *****

ELEMENT TYPE 999 IS MESH200 3-NODE TRIA MESHING FACET

KEYOPT( 1- 6)= 4 0 0 0 0 0

KEYOPT( 7-12)= 0 0 0 0 0 0

KEYOPT(13-18)= 0 0 0 0 0 0

CURRENT NODAL DOF SET IS UX UY UZ

THREE-DIMENSIONAL MODEL

ELEMENT TYPE SET TO 999

GENERATE ELEMENTS ON SURFACE DEFINED BY SELECTED NODES

TYPE= 999 REAL= 1 MATERIAL= 1 ESYS= 0

NUMBER OF ELEMENTS GENERATED= 13648

USING FILE stl_temp.rst

THE SCALE FACTOR HAS BEEN SET TO 1000.0

USING FILE stl_temp.rst

ESEL FOR LABEL= TYPE FROM 999 TO 999 BY 1

13648 ELEMENTS (OF 43707 DEFINED) SELECTED BY ESEL COMMAND.

SELECT ALL NODES HAVING ANY ELEMENT IN ELEMENT SET.

6814 NODES (OF 53895 DEFINED) SELECTED FROM

13648 SELECTED ELEMENTS BY NELE COMMAND.

WRITE ALL SELECTED NODES TO THE NODES FILE.

START WRITING AT THE BEGINNING OF FILE stl_temp.node

6814 NODES WERE WRITTEN TO FILE= stl_temp.node

WRITE ALL SELECTED ELEMENTS TO THE ELEMENT FILE.

START WRITTING AT THE BEGINNING OF FILE stl_temp.elem

Using Format = 14(I6)

13648 ELEMENTS WERE WRITTEN TO FILE= stl_temp.elem

SYSTEM=

c:\temp\ans2stl_win.exe stl_temp

Number of nodes read 6814

Number of element read: 13648

STL Data Written to stl_temp.stl

Done!!!!!!!!!

/COPY FILE FROM FILE= stl_temp.stl

TO FILE= ..\..\stl_temp.stl

FILE stl_temp.stl COPIED TO ..\..\stl_temp.stl

image

The resulting STL file looks great:

image

I use MeshLab to view my STL files because… well it is free.  Do note that the mesh looks coarser.  This is because the ANSYS mesh uses TETS with midside nodes.  When those faces get converted to triangles those midside nodes are removed, so you do get a coarser looking model.

And after getting bumped from the queue a couple of times by “paying” jobs, our RP group printed up a nice FDM version for me on one of our Stratasys uPrint Plus machines:

image

It’s kind of hard to see, so I went out to the parking lot and recorded a short video of the part, twisting it around a bit:

Here is the ANSYS Mechanical project archive if you want to play with it yourself.

Other Things to Consider

Using FE Modeler

You can use FE Modeler in a couple of different ways with STL files. First off, you can read an STL file made using the method above. If you don’t have an STL preview tool, it is an easy way to check your distorted mesh.  Just chose STL as the input file format:

image

You get this:

image

If you look back up at the open dialog you will notice that it reads a bunch of mesh formats. So one thing you could do instead of using my little program, is use FE Modeler to make your STL.  Instead of executing the program with a /SYS command, simply use a CDWRITE,DB command and then read the resulting *.CDB file into FE Modeler.  To write out the STL, just set the “Target System” to STL and then click “Write Solver File”

image

You may know, or may have noticed in the image above, that FE Modeler can read other FEA meshes.  So if you are using some other FEA package, which you should not, then you can make an STL file in FE Modeler as well.

Color Contours

The next obvious question is how do I get my color contours on the plot. Right now we don’t have that type of printer here at PADT, but I believe that the dominant 3D Color printer out, the former Z-Corp and now 3D Systems machines, will read ANSYS results files. Stratasys JUST announced a new color 3D Printer that makes usable parts. Right now they don’t have a way to do contours, but as soon as they do we will publish something.

Another option is to use a /SHOW,vrml option and then convert that to STL with the color information.

Scaling

Scaling is something you should think about. Not only the scaling on your deformed geometry, but the scaling on your model for printing.  Units can be tricky with STL files so make sure you check your model size before you print.

Smoother STL Surfaces

Your FEA mesh may be kind of coarse and the resulting STL file is even coarser because of the whole midside node thing.  Most of the smoothing tools out there will also get rid of sharp edges, so you don’t want those. Your best best is to refine your mesh or using a tool like Geomagic.

Making a CAD Model from my Deformed Mesh

Perhaps you stumbled on this posting not wanting to print your model. Maybe you want a CAD model of your deformed geometry.  You would use the same process, and then use Geomagic Studio.  It actually works very well and give you a usable CAD model when you are done.

Microloaning with Kiva

kiva_121x64

We just updated our loans on www.KIVA.com, a microloan website that PADT has been a member of since 2007.

Kiva-loans-2014_01_29

Kiva takes very small loans from people, pools them together, and makes  small loans to entrepreneurs around the world.  It is a great way to make a big difference in someones life with a small donation.

You know how much we love numbers here at PADT, so here are some about our Kiva loan activity:

Attention: The internal data of table “1” is corrupted!

It is interesting to read the little loan pages and understand a bit about what the applicants are trying to do and where they are coming from. You can see our loans on our lending page:

www.kiva.org/lender/padtinc

At first $1,500 seemed like a lot of money, but over the years it has gone a long way.  Who would have thought we would be involved in pig farming in the Philippines, a Peruvian Beauty Parlor, or a Cafe in Albania?

If you want to try it, make a loan through this invitation link.  When you make a loan, $25 gets added to PADT’s loan pool.

www.kiva.org/invitedby/padtinc

 

Read also: https://www.evergreenfunders.com/dont-be-part-of-the-17-billion-banking-scam/

PADT Hosts Lunch and Learn: Living in an Engineered World

PADT was pleased to host an Arizona Technology Council (AZTC) Lunch and Learn today.

EngineeringWorldTalk

The topic, “Living in an Engineered World: A look at the Impact of the Engineering Process on all Aspects of Business and How to Take Advantage of It,” attracted a diverse crowd of business owners, educators, salespeople, and others.

The gist of the talk was presented by Eric Miller, one of PADT’s owners,  advanced the theory that humans live in a world that is engineered by humans, and that one can benefit by viewing most aspects of business and life from an engineering frame of reference. It also stressed the importance of process and process optimization in today’s world, as well as the need to understand how people make decisions based on their value propositions.

The talk was followed by a lively question and answer sessions that was in some ways more thought provoking than the presentation.

a3 a2 a1

If you would like to learn more, contact eric.miller@padtinc.com.

Usable Color 3D Printed Parts Now Available with Stratasys Objet500 Connex3

We have been waiting for this day for a long time.  There have been 3D Printers out there that do multiple colors, but let’s be frank, the parts were not very strong.  Nice to look at, but not much else.

This weekend Stratasys announced the Objet500 Connex3 machine.  Based on the proven Object500 Connex this multi-material platform allows the user to use three materials, giving you a choice of 46 colors for each build.  That includes transparent material with color tinting!  You can also still mix rubber and ABS like materials.

Objet 500 machine with man and multi material 3D printed shoes

We will have more to report on this in the coming weeks, but we just wanted to get the word out: Usable Color Prototyping is here and it is bright.

If you have an immediate need, or just want to learn more, contact PADT at 480.813.4884 or shoot an email to sales@padtinc.com.

Blue glasses with tinted lenses and black rubber parts Untitled-1

PADT’s team was able to see parts made on the new device at a recent Stratasys gathering. Then they had to keep their mouths shut for two weeks.  That was hard. These parts are high-quality prototypes like you would expect from the Objet technology. But now in color.  Bright brilliant color on strong parts.  This is what many of us have been waiting for.

Here are some links to get your appetite whetted:

(Yes to our ANSYS readers. We are working on a way to get this to print results)

Customers in the News: Space Data Corp Demonstrates Communications Balloon at Near Space Alliance

CaptureIt is always great to see PADT customers in the news.  This past weekend, January 25, 2014, our long time customer Space Data Corp. launched “a 15-foot latex balloon to carry communications equipment aloft to above 65,000 feet to relay voice and data over a 600-mile range.”  This was at a meeting of the Arizona Near Space Technology Alliance, an organization we suspect may have more PADT customers as members.

Read about it here, or watch the video.

space-data-baloon

The article also points out the two of our local US Representatives, Kyrsten Sinema (D) and Matt Salmon (R) were there.  It was great to see actual bi-partisan support for local business and technology.

PADT has been providing Space Data with design, simulation, prototyping, and manufacturing consulting help since about the time the company was founded.  The company was an early adopter of the extensive use of rapid prototyping in the design and test of their systems, long before it was considered cool and called 3D Printing.

Every time we see one of their balloons go up, we feel proud to have contributed to their growth and success.