PADT Company Pictures Through the Years

As we get ready to launch the new website and the new blog, I find myself looking back on PADT’s 18 year history.  While looking for some lab pictures I found a directory buried about 6 levels down on my C:\ drive called “CompanyPictures”  And inside are all of the pictures that we have kept over the years. After looking at them I thought it might be fun to put them out there on the Blog.

Unfortunately we did not think to take a picture till 2000. So we were already 6 years old.  Since then we only missed 2004.  Take a look. Maybe you recognize someone you used to work with here, maybe you used to work here.  Let us know what you think in the comments.

PADT_2000_a
2000
PADT_2001_a
2001
PADT_2002_a
2002
PADT_2003_a
2003
PADT_2005_a
2005
PADT_2006_a
2006
PADT_2007_a
2007
PADT_2008_a
2008
PADT_2009_a
2009
PADT_2010_a
2010
PADT_2011_a
2011
PADT_2012_a
2012

SBIR Awards at PADT

In 1999 PADT started looking for ways to leverage our various skills to further develop some intellectual property.  We had been doing projects for a variety of customers who were participating in the Small Business Innovative Research program through the federal government (SBIR), and we thought it might not be a bad idea to try going for a few SBIR’s of our own to help us get from that “startup” stage to the “established” phase.  It worked, over the following ten years PADT was successfully awarded 13 SBIR grants.

While we were in the thick of it we really did not keep track of things from a marketing perspective.  But as we prepare to launch the new Product Development portion of the PADT Blog, we thought it would be a good time to look back and summarize what we did and share it with our readers.

One thing that sets PADT apart in the world of SBIR’s is our high level of commercialization.  Although not all of the awards PADT received turned into commercial products, many did.  And bits and pieces from each project help PADT increase our experience and tool set.

Here is a list of the SBIR’s we have been awarded over the years:

Miniature Air Handling System for Portable Fuel Cell Power Supplies
US Army 1999 Phase I
VaneAlpha1This was our first SBIR and it was also our first project that involved pumping or blowing for fuel cells.  We learned a lot on this project and many of the follow on SBIR and commercial products we developed in this area are based on the technology developed here.
Ultra Low Weight Turbomolecular Pump
NASA 1999 Phase I
psys5JPL was interested in developing a very low weight vacuum pump (TMP) that they could use on their interplanetary explorers so they could run their experiments in a vacuum.  This project had a lot of issues to overcome, not the least of which was how to manufacture the thing.
Ultra Low Weight Turbomolecular Pump
NASA 2000 Phase II
TMP_050701_fOur proof of concept in Phase I was good enough to win PADT a Phase II contract for the ULWTMP design.  Now our ideas had to be put to work. We did solve a lot of the problems, especially the manufacturing issues. At the end of the project the only issue left undone was the rotordynamics problem that is encountered at the speeds of a TMP with a magnetic bearing.
Miniature Air Handling System for Portable Fuel Cell Power Supplies
US Army 2000 Phase II
vane-familly2PADT took what we learned in Phase I of this project and developed a family of vane compressors that met the unique needs of the US Army.  We developed an entire family of pumping solutions and tested them to develop a good understanding of their capabilities, strengths, and weaknesses.
Fuel Cell Based Portable Hybrid Power Supply
US Army 2000 Phase I
Hybrid-aThis phase I project involved the design of a portable hybrid power supply that combined batteries and a hydrogen fuel cell.  The end product was a conceptual design for a light way power solution for US soldiers.  PADT built a working demonstrator model that highlighted the control system, the custom fuel cell, and the pumping solution.
Fuel Cell Based Portable Hybrid Power Supply
US Army 2001 Phase II
hybridThis follow on project focused on the detailed design of a light weight portable power supply that used hydrogen to drive a fuel cell.  We produced a working demonstration product at the conclusion if of the effort. PADT was able to use all aspects of our company: simulation, design, test, prototyping, system integration, and manufacturing. The technology developed was used successfully to develop a complete hybrid system for a methanol fuel cell manufacturer who applied it to commercial applications.
Aerosol Collection Technology
US Army 2001 Phase I
impactor_bAfter the events of 9/11 the US Army had an interest in being able to detect air born biological weapons. Although they had good detectors, they needed a device that would use aerodynamics to collect air and separate out particles of a certain size. In Phase I of this project PADT used our CFD capability and rotating machinery design experience to develop a conceptual device for this application.
Aerosol Collection Technology
US Army 2003 Phase II
91010046For Phase II of this project PADT produced a working prototype and tested it with the help of Arizona State University. The testing showed that the technology was viable.  Fortunately, as time passed so did the potential threat and no market really opened up looking for such a device.
Low Cost Hot Anode Recycle Blower for SOFC Systems
DOE 2005 Phase I
invis_start_02_a32500_pic13PADT applied our fuel cell pumping knowledge to develop a pumping system that could work with the very high temperature Solid Oxide Fuel Cell systems that the government was looking at using for aircraft applications.
Miniature Disposable Drug Infusion Pump
DOD 2005 Phase I
clip_image002The department of defense is always focused on improving their ability to treat wounded soldiers in the field. One area that needed improvement in 2005 was the ability to deliver drugs in the battlefield with a portable lightweight design that had many special features which would allow a non-expert to administer the drugs. PADT investigated several different solutions and produced a conceptual design.
Low Cost Hot Anode Recycle Blower for SOFC Systems
DOE 2006 Phase II
clip_image002For the follow-up on this project PADT built a working system for pumping very high temperature fuel in a solid oxide fuel cell loop.  We also tested the system, at temperature, under a variety of operating conditions.
High Temperature Blower Development For SOFC Applications
DOE 2006 Phase I
clip_image002[5]PADT received an additional Phase I grant in this area to explore other options and to improve on the system developed as part of the low cost program.
Instruments and Devices To Preserve Molecular Profiles In Tumors
NIH 2009 Phase I
IMG_1448PADT first NIH project looked at developing a device that would freeze tissue biopsy samples during their extraction from a patient, or just after.  PADT developed a working prototype, the ReadyFreeze, that was very successful at allowing the user to freeze biopsy samples very shortly after extraction.

PADT’s very own Susanna Young Named as one of 2012’s Top Young Entrepreneurs by The Arizona Republic

imageMany PADT employees were looking through their newspaper (or browsing it online) and saw our very own Susanna Young made this years list of the Valley’s top Young Entrepreneurs.

Susanna worked as an intern at PADT while she was going to ASU and still works part time when she is not trying to make the world a better place by building G3Box into a viable company.  If you don’t know about their effort to make medical clinics from steel shipping containers, check out the website and learn more.

Here is a link to the article online:

http://www.azcentral.com/business/arizonaeconomy/articles/20121102young-entrepreneurs-arizona-2012.html 

Scroll to the end of the slideshow to read about Susanna. 

Congratulations. It is good to see good people, and an engineer, get recognized by the business press.

PADT Golf Team Makes Huge Improvement in Standing at 2012 SME Golf Tournament

Our local Society of Manufacturing Engineers (Phoenix Chapter 067) held their 22nd Annual Charity Golf Tournament and Fundraiser at the Arizona Grand Resort this weekend.  Fun was had by all and APDT was once again proud to be a sponsor. The weather was perfect and the event again raised money for the chapter’s scholarship fund.

We are extra proud to announce that PADT’s crack golf team made a big push, and some changes in their lineup this year, to power through and finish 7th out of 14.  That is a huge improvement from last years finish… which we shall not discuss. It looks like hiring Jonathon was a good investment for our prototyping sales efforts, and our golf game.

3D Printing, Rapid Prototyping, Additive Manufacturing? What is the Difference?

imageThe technology called 3D Printing is getting a lot of press lately. Articles like “3D Printing is the New Personal Computer” and “The New MakerBot Replicator Might Just Change Your World” are all over this place in the fall of 2012.  For those of us who have been printing 3D parts since the early 1990’s, this new frenzy can be a imagebit annoying. At every trade show that PADT goes to these days a large number of non-technical people come up and start telling us about 3D Printing and how it is going to “change everything.”  The next question is almost always “Is that a big 3D Printer?” as they point at a nice big FORTUS 400.  “Well, no, that is a digital manufacturing center, which is a rapid prototyping technology that uses similar technology to 3D Printing but it is much more precise, the material…” and by that point their eyes glaze over and they start playing with the model of the USS Enterprise we put out on the table to attract people.

By sorting through branding, media hype, and the confusing array of new low cost technologies, some clarity can be found and direction for those of us who use these technologies for product development. 

Additive Manufacturing

The first place to start is to recognize that we are talking about additive manufacturing technologies.  Taking a part definition and adding material through a variety of methods to make a physical part.  In almost every case, you build a part by adding thin layers of material one on top of another. The additive process differentiates this type of manufacturing from molding, forming, and machining – all of which remove or shape material.

The advantage of additive manufacturing is that you have very few constraints on the shape of your final part and there is no tooling, no programming, and very little manual interaction with the process.  This has huge advantages over the traditional manufacturing methods when it comes to speed.  Although you pay a price in strength, material selection, and surface finish, you can get parts quickly without a lot of effort.

Rapid Prototyping

Additive manufacturing took off in the late 80’s because it allowed engineers to make prototypes of their parts quickly and easily.  Rapidly.  And that is why for almost twenty years, most people who use additive manufacturing refer to it as rapid prototyping.  And to this day, most of the users of additive manufacturing use it for making prototypes as part of their product development process.  RP sounds better than AM, and better describes what you use the technology for rather than the technology. So that name took off and has stuck.

Other Names, Other Uses

As the technology got better, and especially as the materials got better, people started using additive manufacturing for other uses beyond making prototypes.  And, as is the way of companies that are trying to sell stuff, the manufacturers starting coining new names for the applications as users come up with them:

  • Rapid Patterns: making a part that will be used as a pattern in a downstream manufacturing process.  This is very common with jewelry in that the pattern is used in a lost-wax process for casting.  It is also used a lot with soft tooling, where the pattern is used to make a negative mold out of a soft rubber material.
  • Rapid Tooling: Making fixtures and molds using additive manufacturing. Tools can be used as patterns for forming, patterns for casting, or even for making molds for injection molding.
  • Direct Digital Manufacturing:  This is one of my favorite names and abbreviations – DDM.  The difference here is that the additive manufacturing process is used to make a final product, not just a prototype. 
  • Rapid Manufacturing: The same as Direct Digital Manufacturing, but without the alliteration.

3D Printing

According to Wikipedia the term 3D Printing was invented at MIT in 1995 when someone used an inkjet printing head to “print” a binder on to a bed of powder.  They used a printer to do their additive manufacturing, and used the term 3D Printing to describe it. By the way, they went on to form ZCorp, the second most popular additive manufacturing process in the world. 

Even though it started being used to refer to an inkjet printing based approach, the name spread over time. The term really caught on because it is so descriptive. Additive Manufacturing, and even Rapid Prototyping, do not make a lot of sense to non-engineers. 3D Printing makes sense immediately to pretty much anyone.

Those of us who are diehards really want 3D Printing to refer to lower cost, affordable devices that make lower end prototypes.  And if you look at how the name is applied by the manufacturers, that is generally how it was used.  Here is a screen shot of the Stratasys home page, and see how they split their systems into 3D Printers and 3D Production systems:

image

But the name is working so well that we are seeing a shift towards refereeing to additive manufacturing as printing.  3DSystems is going full bore and as of this writing, refers to their whole line as “Printers” and differentiates them by calling them “personal, professional, and production.”

image

What is Old is New Again

So it looks like the trend is towards 3D Printing becoming the new term for an old technology. And those of us who call them RP machines will have to stop doing that, or just accept that we will be met with blank stares when we do.  So next time someone comes up to tell me they just read an article in Good Housekeeping about how they will be able to make replacement parts for their dish washer in the garage with a 3D Printer, I will smile and say “That is great. In fact, we use almost all of the major 3D Printing technologies in house at PADT, and we resell the most popular 3D Printers from Stratasys, Inc.  That includes that big FORTUS 900.  It is a big and accurate 3D Printer”

PADT Medical Receives Support Award from AZBio, and Provides Awards to Others

On October 23rd, 2012 PADT was honored to receive an award at the AZBio Awards event in recognition for our support of Innovation in the Arizona Bio-Technology community.  It is a very cool little guy and is very happy on our awards shelf:

AZBio-15Years-Award-2012

In addition, we were very honored to be asked to manufacture many of the awards that were handed out.  The distinctive double-double-helix design was a big hit again this year, and it was a real honor to know that so many companies, educators, and individuals will have something PADT made in our Rapid Prototyping group on their shelf.

group2

Rapid Prototyping Technology Animations

Every once in a while we get asked to go out and do presentations on Rapid Prototyping. As part of that, we like to explain the four major technologies: SLA, SLS, FDM, and Polyjet. No matter how many hand gestures we use people just don’t seem to get it unless we show an animation.

So we thought it would be good to share those with the community so that they can either learn about the basics of the technology or use these to help educate others. They are crude, we are engineers and not artists.  But they get the point across. We hope to have time to update them and add text.

They are in the form of animated GIF’s, so you can put them on a website or throw them in a PowerPoint and you don’t need a viewer or special software to view them.  Click on the images to get the larger version.

Use as you see fit, just remember to mention where you found them: P – A – D – T.

FDM-Animation

PolyJet_Animation

SLA-Animation-3

SLS-Animation

PADT’s YouTube Videos for Rapid Prototyping

As we get this new blog, The RP Resource, off the ground, we thought we would start with some posting about some videos we have done in the past that people in the RP community might find useful.

We will start off with a simple slide show that shows some of the cool models we have built over  the years:

RP Part Examples Slideshow

 

Next up is one of our favorite side projects, a clock we made on our Stratasys FORTUS 400 prototyping system.  We took the design for a wooden pendulum clock and modified it to work with our FDM system.  Very cool:

PADT FDM Pendulum Clock

 

Sometimes the best way to make a prototype is not to print it, but to machine it.  In this video we show off our 3-Axis milling skills:

3-Axis Milling

Our most popular videos are HOW-To videos for working with the Dimension 3D Printers.  In the first video Mario shows how to load material in the Dimension, in the second one he shows how to do the same with a uPrint:

Loading a Stratasys Dimension Printer
Loading a Stratasys uPrint Printer

 

You can go to PADT’s YouTube page: www.youtube.com/padtinc to see more videos. And subscribe so you will know when we post a new video.

First Look: Pumpkin Launch 2012

For a couple of years now, PADT has had a tradition of shooting off pumpkin mortars on Halloween.  Originally we took dry ice, sealed it with some water in a 2 Liter bottle, put it in a tube with a pumpkin on top and “bang-whooosh” a pumpkin goes a flying.

Being engineers, we have to improve on the process… this year we used foam wadding, put cameras inside foam “pumpkins” and tried launching an ice pumpkin.  Here is the first attempt:

 

Pumpkin Launch

Look for more videos tomorrow.

Webinar Info: Getting Started with ANSYS Engineering Knowledge Manager (EKM)

imageLast Thursday (10/25/2012) Clinton Smith gave a well attended webinar sharing his experience getting the Engineering Knowledge Manager (EKM) up and running for him and how he used it on a project. As promised, the slides from that presentation and a link to the recording can be found here:

PDF of Presentation:

The Recording: https://padtincevents.webex.com/padtincevents/lsr.php?AT=pb&SP=EC&rID=5952687&rKey=eefe3ba0d2f0cbc6

Webinar Info: An Example of Moving Mesh Modeling of a Valve

imageLast week Clinton Smith gave a webinar showing an example of using moving meshes with ANSYS FLUENT.

If you missed the presentation you can view a Recording here.

Or download a PDF of the presentation here:

As always, you can see which webinars are coming up, and view recordings of past webinars at:

padtincevents.webex.com.

Suppressing New-Line Characters in APDL, and a Better WRTTBL.mac

OK, it is Friday afternoon and if I do not write something soon the week will be missed. We did not do a seminar this week so I can not just post the notes and some comments from the webinar, bummer.  All of the real tech support people at PADT have been busy with training, mentoring and doing tech support, so they did not kick anything out. So that leaves me to come up with something. So, as is usually with me, I looked for something I felt guilty or ashamed of. Because that is the way my brain works.

And I remembered that two posting ago I put out a piece of junk macro that printed out tables, as part of the second article on tables in APDL.  Although it worked it was brute force and it used a bunch of *if statements to determine how many columns to write.  Ugly.

While I was extruding that particular piece of bodily waste something in the back of my mind said that APDL had an undocumented command that would suppress a line-feed on a *VWRITE. This is what one does with ‘C’ and other languages invented after the 1970’s.  If you suppress the line-feed, you can just loop over the number of columns. 

Next step, go to the help and see if it is there is some clue as to if that tickle in my brain was valid.  I found a posting on XANSYS from 2004… by some guy name Eric Miller…  Go figure. 

There are two descriptors that are not documented in the help: ‘/’ and ‘$’. 

‘/’ adds a newline, and ‘$’ suppresses it.  So if I want to write out the values in a 1D array all on one line but I don’t know how long the array is I can do:

*dim,myar,,10
myar(1) = 1,2,3,4,5,6,7,8,9,10
*get,nrw,parm,myar,dim,X

*cfopen,foo1.txt

*do,i,1,nrw
*vlen,1
*vwrite,myar(i)
(g16.9,$)
*enddo
*vwrite
(x)
*cfclose
 
This ends up creating foo1.txt:

image

So, extrapolating this, we can rewrite the nothing-to-be-proud about old wrttbl.mac with

 

ttbl = arg1      ! Get the name of the table you want to write

fname = arg2     ! get the name of the file to write to

 

*get,nrw,parm,%ttbl%,dim,X         ! Get the size of the table

*get,ncl,parm,%ttbl%,dim,Y

*get,xax,parm,%ttbl%,var,1         ! Get the names of the columns

*get,yax,parm,%ttbl%,var,2

 

*cfopen,%fname%    !Open the file

 

*vwrite,ttbl,xax,yax    ! Write a header (note / to add a line)

('Table: ',A,' ',A,' vs ',A,/) 

 

*vwrite         ! write 10 spaces, then don't write a new line by using $

('          |',$)

 

*do,jj,1,ncl ! Loop on each column, writing out the column value ($ again)

    *vlen,1

    *vwrite,%ttbl%(0,jj)

    (g10.4,$)

*enddo

*vwrite    !You need a line feed now that you are done, just write a space

(' ')

*vwrite    !Write a line of  dashes to seperate the header, with a pipe

(10x,'|',$)   ! to seperate the row values

*do,jj,1,ncl

    *vwrite

    (10('-'),$)

*enddo

*vwrite

(' ')

 

*do,ii,1,nrw    !Now write the values, looping on each row, then each column

    *vlen,1

    *vwrite,%ttbl%(ii,0)

    (g10.4,'|',$) 

    *do,jj,1,ncl

        *vlen,1

        *vwrite,%ttbl%(ii,jj)

        (g10.4,$) 

    *enddo

    *vwrite

    (' ')

*enddo

 

*cfclose

Have a great weekend!

Webinar Info: Writing and Compiling a Custom Material Property in ANSYS Mechanical APDL

imageDuring our webinar held at noon on 9/27/2012 we promised to provide a link to the recording, a PDF of the PowerPoint, and some answers to a few questions.  Here is that information:

Files

Presentation PDF is here:

Zip file with the sample USERMAT.f and input file:

 

imageState Variables

I was a bit confusing on state variables. The problem is with my use of them, not with the variables.  The test model only had one integration point.  My code is still not working right, the default USERMAT is overwriting my flag somewhere and I don’t have time to figure it out. It’s killing me but I have to do some real work.

But anyhow, my assertion that the state variables are per integration point is correct.

Debugging

I am not aware of any way to use a debugger with ANSYS.  There is nothing in the documentation, and to be honest, I’ve not used a real debugger in years.  So there may be a way to do so, and see your routine in the debugger since you have the source code, but I have no idea on how to do that.  Perhaps someone with more debugging experience can comment below.

Other UPF’s

Someone asked about other routines that are available and we ran out of time before I could go over them.  Here is a list.

ELEMENTS
UserElem.f User Defined Element that use newer API
UEL100.f – UEL105.f
UEC100.f – UEC105.f
UEX100.f – UEX105.f
UEP100.f-UEP105.f
USERTR.f
USERAC.f
User elements defined that access the program database directly
USEROU.f Stores user-provided element output
USERAN.f Modify orientation of material properties
USERRC.f COMBIN37 (control/thermostat/spring/damper/resistor) user routine.
UEIMatx.f Access to an elements matrix or load vector
UTHICK.f Sets thickness at integration points
UsrFictive Sets “fictive” temperature (I have no idea what that is)
UFLEX.f Calculates pipe flexibility for PIPE288/289
UsrShift.f Allows user to specify time shift
Materials
UserMat.f User material models
UserHyper.f User defined hyperelasticity models
UserCreep.f User defined creep model
user_tbelastic.f Allows definition of elastic stiffness at a given integration point based on user model.  TB,ELASTIC,,,,USER
USERFC.f User defined failure criteria
USERSWTRAIN.f User defined swelling, for TB, SWELL,,,,USER
USERCK.f Helper routine that passes material properties for a user material in
USERFRIC.f User defined friction calculation.  Not just friction but all values calculated in contact calculations with friction turned on.
LOADS
USERFL.f Changes scalar field values (temp, fluence, heat generation, moisture content, magnetic virtual displacement), by element.
USERPR.f Calculates element pressure, by element
USERCV.f Calculates element face convection.
USERFX.f Calculates element face heat flux
USERCH.f Calculates element face charge density surface values
USERFD.f Computes complex load vectors for frequency domain logic
USERPE.f Calculate the rotation of an elbow pipe element caused by internal pressure
USRSURF116.f
USER116Cond.f
USER116Hf.f
Modifies the conduction, film coefficient, bulk temp for SURF151/152
userPartVelAcc.f Ocean wave particle acceleration calculation for PIPE288/289
userPanelHydFor.f Calcs hydrodynamic loading on SURF164 from ocean loading
USER Commands
USER01.f-USER10.f Create your own ANSYS commands that are accessed through /UCMD,cmd,num where num refers to the subroutine number and cmd is the command name you want to assign it. Put this in your startxx.ans file to give regular access.

Other Stuff Every User Should Know about Tables in ANSYS Mechanical APDL: Nesting and 4 or 5 Dimension Tables

complicated table design

About a month ago we published an article on “What Every User Should Know About Tables in ANSYS Mechanical APDL”  At the end of that article we had a section on “Other Stuff”  and expressed our hope to cover those subjects in the future. The future is now.  If you are not very familiar with table arrays, make sure you review the previous article before delving into nesting and 4/5 dimension tables in this article. 

By the way, the funky table at the end of the article got a lot of good feedback, so I’ve googled around and found some other interesting tables. The one here at the top is what you get if you google “complicated table”

Nested Tables

As you will remember from memorizing the previous article, a common use for tables is the set them up to give you a value for a given “primary variable” that is determined by the solver at a given point in the solution.  Possible primary variables are: TIME, FREQ, X, Y, Z, TEMP, VELOCITY, PRESSURE and SECTOR. But what if you want to use one of those primary variables to look up a value, then use that value to then interpolate a second value?

A good example is that you have a piece of rotating equipment and the value of the heat transfer coefficient (HF) is a function of RPM and the radius of a given element face.  But RPM varies over time.  What you can do is make the HF table point to and RPM table that is based on the primary variable time:

*DIM,MYCNV,TABLE,3,3,,RPM,X,,1
*taxis,mycnv(1,1),1,0,1000,20.01e6
*taxis,mycnv(1,1),2,0,1,2
mycnv(1,1) = .25,4,10
mycnv(1,2) = .35,7,15
mycnv(1,3) = .45,10,28

*DIM,RPM,TABLE,4,1,1,TIME
RPM(1,0)=0.0,10.0,40.0,60.0
RPM(1,1)=0.0,5.0,20.0,30.0

wrttbl,'mycnv','foo4.txt'
wrttbl, 'rpm','foo5.txt'

SF,ALL,CONV,%mycnv%

This macro is missing stuff, like a model and selecting the nodes to apply the SF command to.

The tables look like this:

Table: mycnv    RPM      vs X       

| 0.000 1.000 2.000
|------------------------------
0.000 |0.2500 0.3500 0.4500
1000. | 4.000 7.000 10.00
0.2001E+08| 10.00 15.00 28.00

and

Table: rpm      TIME     vs         

|0.7889E-30
|----------
0.000 | 0.000
10.00 | 5.000
40.00 | 20.00
60.00 | 30.00

(We’ll cover the wrttbl macro below.)

So at a given substep, the program will take time and figure out what RPM needs to be.  Then it will use RPM and the radius (X in CSYS 1) to figure out the convection coefficient for each node.

As you can imagine, you can get pretty sophisticated with this. The key is that the name of the table you use for the calculated value is input into the variables to interpolate on for the second table, using the *DIM command.

Another common use is scaling tables based on some value. Let say you have a pressure table and the total pressure is scaled over time, based on time.  You would make a pressure table that is dependent on say X and y. It would have two planes. One with 0 values and one with the max values. Then you would make a scale table that scales from 0 to 1 based on time.  It would look like this:

*DIM,pscl,table,5,,,time    !Row label is CPTAB, the table of Cps
*taxis,pscl(1,1),1,0,1,5,10,30
pscl(1,1) = .25,.5,1,1,.333

*DIM,ptab,TABLE,4,4,2,X,Y,pscl
*taxis,ptab(1,1),1,0,1.35,2.75
*taxis,ptab(1,1),2,-7.2,-3.2,6.5,10.6
*taxis,ptab(1,1),3,0,1
ptab(1,1,1) = 0,0,0,0
ptab(1,2,1) = 0,0,0,0
ptab(1,3,1) = 0,0,0,0
ptab(1,4,1) = 0,0,0,0
ptab(1,1,2) = 72,48,97,123
ptab(1,2,2) = 53,48,88,98
ptab(1,3,2) = 43,38,77,88
ptab(1,4,2) = 33,28,55,77

SF,ALL,PRESS,%ptab%

 

As always with tables, double check things and make sure you have your  rows and columns correct.  Start simple, and then add more detail. Testing out on a 2×2 or 3×3 tables is a good way to start.

4 and 5 Dimension Arrays and Tables

 
This section applies to both arrays and tables, so it is a bit beyond the scope of the title, but I hope you will forgive me.

Most users will simply use a one, two, or even three dimension array or table (row, column, plane). However, both arrays and tables support two more dimensions: books and shelves. Because this capability is a later addition to the program, it behaves a little differently. You need to add values for the size of the book (KMAX) and the shelf (MMAX) as well as variable names for each: VAR4 and VAR5

The first difference is in the *DIM command. For normal arrays and tables you use:

*DIM, Par, ARRAY, IMAX, JMAX, KMAX, Var1, Var2, Var3, CSYSID 

*DIM, Par, TABLE, IMAX, JMAX, KMAX, Var1, Var2, Var3, CSYSID

For 4 dimension arrays or tables you use:

*DIM,Par,ARR4,IMAX,JMAX,KMAX,LMAX,Var1,Var2,Var3,Var4,CSYSID
*DIM,Par,TAB4,IMAX,JMAX,KMAX,LMAX,Var1,Var2,Var3,Var4,CSYSID

For 5 dimension arrays or tables you use:

*DIM,Par,ARR5,IMAX,JMAX,KMAX,LMAX,MMAX,Var1,Var2,Var3,Var4,Var5,CSYSID
*DIM,Par,TAB5,IMAX,JMAX,KMAX,LMAX,MMAX,Var1,Var2,Var3,Var4,Var5,CSYSID

It is important to be aware of this because if you look at the manual entry for *DIM it only lists the 3 dimension version of the command, and these variations are covered in the notes.

Once the array or table is defined you have to fill it using APDL commands, this size is not supported in the user interface. The same commands are used, but instead of supplying one, two or three indices values, you supply four or five.

The following is an example of defining a table in terms of location (X,Y,Z), Time, and Temperature. This is the most common usage of a five dimension table:

*dim,ldval,tab5,3,3,3,3,3,X,Y,Z,TIME,TEMP    ! table
*taxis,ldval(1,1,1,1,1),1,-2.3,0,3.4 ! X Range
*taxis,ldval(1,1,1,1,1),2,-1.2,0,1.8 ! Y Range
*taxis,ldval(1,1,1,1,1),3,-3.6,0,4.5 ! Z Range
*taxis,ldval(1,1,1,1,1),4,0,5,10 ! Time Range
*taxis,ldval(1,1,1,1,1),5,32,320,500 ! Temp Range

*do,ii,1,3
*do,jj,1,3
*do,kk,1,3
*do,ll,1,3
*do,mm,1,3
!silly made up equation to fill the table with
ldval(ii,jj,kk,ll,mm) = ii*.123+jj/.2+ll*kk+mm*JJ*JJ
*enddo
*enddo
*enddo
*enddo
*enddo

sancal-elipse-floating-coffee-table-rafa-garcia-11Writing a Table to a File

For simple 2D tables with up to 10 columns, I use a cheesy macro I wrote called wrttbl.mac. It was used above.  It is a bit of a brute force method, because it has code blocks for from 0 to 10 columns.  A more general approach would build the actual *VWRITE commands with *VWRITES… It should also be expanded to do Planes.  Maybe for a future article.

Anyhow, here it is, maybe you will find it useful.

ttbl = arg1
fname = arg2
*get,nrw,parm,%ttbl%,dim,X
*get,ncl,parm,%ttbl%,dim,Y
*get,xax,parm,%ttbl%,var,1
*get,yax,parm,%ttbl%,var,2

nmcl = nint((ncl*10)/2)
nmrw = nint(nrw/2)

*cfopen,%fname%

*vwrite,ttbl,xax,yax
('Table: ',A,' ',A,' vs ',A)
*vwrite,
(x)
*if,ncl,eq,1,then
*vlen,1
*vwrite,%ttbl%(0,1)
(10x,'|',10g10.4)
*vwrite
(10x,'|',10('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii ,1)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,2,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2)
(10x,'|',10g10.4)
*vwrite
(10x,'|',20('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,3,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3)
(10x,'|',10g10.4)
*vwrite
(10x,'|',30('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,4,then
/gopr
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4)
(10x,'|',10g10.4)
*vwrite
(10x,'|',40('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,5,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5)
(10x,'|',10g10.4)
*vwrite
(10x,'|',50('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,6,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5),%ttbl%(0,6)
(10x,'|',10g10.4)
*vwrite
(10x,'|',60('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5),%ttbl%(ii,6)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,7,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5),%ttbl%(0,6),%ttbl%(0,7)
(10x,'|',10g10.4)
*vwrite
(10x,'|',70('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5),%ttbl%(ii,6),%ttbl%(ii,7)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,8,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5),%ttbl%(0,6),%ttbl%(0,7),%ttbl%(0,8)
(10x,'|',10g10.4)
*vwrite
(10x,'|',80('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5),%ttbl%(ii,6),%ttbl%(ii,7),%ttbl%(ii,8)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,9,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5),%ttbl%(0,6),%ttbl%(0,7),%ttbl%(0,8),%ttbl%(0,9)
(10x,'|',10g10.4)
*vwrite
(10x,'|',90('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5),%ttbl%(ii,6),%ttbl%(ii,7),%ttbl%(ii,8),%ttbl%(ii,9)
(g10.4,'|',10g10.4)
*enddo
*endif
*if,ncl,eq,10,then
*vlen,1
*vwrite,%ttbl%(0,1),%ttbl%(0,2),%ttbl%(0,3),%ttbl%(0,4),%ttbl%(0,5),%ttbl%(0,6),%ttbl%(0,7),%ttbl%(0,8),%ttbl%(0,9),%ttbl%(0,10)
(10x,'|',10g10.4)
*vwrite
(10x,'|',100('-')) |
*do,ii,1,nrw
*vlen,1
*vwrite,%ttbl%(ii,0),%ttbl%(ii,1),%ttbl%(ii,2),%ttbl%(ii,3),%ttbl%(ii,4),%ttbl%(ii,5),%ttbl%(ii,6),%ttbl%(ii,7),%ttbl%(ii,8),%ttbl%(ii,9),%ttbl%(ii,10)
(g10.4,'|',10g10.4)
*enddo
*endif
*cfclose

And with that, I think we have beaten the table topic to death.

naturalistic-curved-wood-table-design-z