News: Contact us to upgrade your software!

Author Topic: FEM coupling ABAQUS for temperature-dependent materials  (Read 39858 times)

Neergaard

  • Client
  • **
  • Posts: 20
    •  
FEM coupling ABAQUS for temperature-dependent materials
« on: February 03, 2016, 05:21:36 PM »
All

I have a model for which the temperatures change significantly.  I am using primarily 2D shell elements.  Both ABAQUS and HyperSizer can handle temperature-dependent material properties, so you would think there would be no difficulty.  When I generate my ABAQUS loads, I am obliged to use a *SHELL SECTION property description for my 2D elements, because *SHELL GENERAL SECTION is incompatible with temperature-dependent material property descriptions.  Before I can import these loads in to HyperSizer, I am obliged to edit all my *SHELL SECTION property descriptions to into *SHELL GENERAL SECTION property descriptions because HyperSizer will not accept the SHELL SECTION description.  This is a viable work-around for a single iteration between ABAQUS and HyperSizer, but it does cause one to wonder how I would accomplish the automated iterations of HyperFEA.

Is there a known work-around?

Ryan

  • Administrator
  • *****
  • Posts: 145
    •  
Re: FEM coupling ABAQUS for temperature-dependent materials
« Reply #1 on: February 04, 2016, 08:38:27 AM »
The *SHELL SECTION limitation in HyperSizer is due to the fact that you cannot overwrite *SHELL SECTION in Abaqus. *SHELL GENERAL SECTION can be overwritten.

When HyperFEA runs, it calls Abaqus via the command line. You can customize this behavior by replacing it with a call to a Python script (or any other program) that modifies the FEM with *SHELL SECTIONs and then calls the Abaqus solver.

FEM Interface > Iterating with FEA > Setting Up FEA Solver Paths

-Ryan

Neergaard

  • Client
  • **
  • Posts: 20
    •  
Re: FEM coupling ABAQUS for temperature-dependent materials
« Reply #2 on: March 10, 2016, 04:54:48 PM »
Ryan

That's not a very good work-around.  As you well know, the *SHELL SECTION limitation in HyperSizer is due to the fact that you cannot overwrite *SHELL SECTION in ABAQUS.  So if I simply change all the *SHELL GENERAL SECTION commands to *SHELL SECTION commands, they will not be overwritten, and ABAQUS will solve the same model it already solved, because it will ignore all the new property descriptions supplied by HyperSizer.
So my script will have to delete all the original properties used by ABAQUS in addition to changing the property description type.  Can I set HyperSizer to flag the new properties, or to overwrite instead of appending?

-Neergaard

Ryan

  • Administrator
  • *****
  • Posts: 145
    •  
Re: FEM coupling ABAQUS for temperature-dependent materials
« Reply #3 on: March 11, 2016, 07:02:40 AM »
Hi Neergaard,

Yes, you are correct. My original suggestion was wrong. You will have to delete the the original sections in the custom script.

If you assume that 1) element-section assignments have not changed and 2) all shell sections are being updated, this should be feasible.

Some background on why we append instead of overwrite:
Overwriting sections in Abaqus is difficult when elements are assigned to new sections (indirectly via elsets). For example if you create or modify a component in HyperSizer, this leads to a new elset in Abaqus. Things get complicated when the modified elset is referenced elsewhere in the model. For example, perhaps the original elset was used to apply loads or boundary conditions. Things also get complicated when only a subset of the elements in an elset are being updated. For example: only half the elements in an element set may have updated properties from HyperSizer, the other half need to preserve the original properties. For Nastran we don't have this complication because each Nastran element is assigned a property ID. There is no layer of indirection.

For now we error on the side of caution and only support SGS. Eventually we would like to support SS because we know that it is more general and more popular.

-Ryan

Neergaard

  • Client
  • **
  • Posts: 20
    •  
Re: FEM coupling ABAQUS for temperature-dependent materials
« Reply #4 on: March 16, 2016, 12:00:10 PM »
Ryan

Alrighty then.  If I am going to be developing interface software between ABAQUS and HyperSizer, I will need more information than would a person simply operating functioning code.  For now,

  • Does HyperSizer generate during HyperFEA the _i.inp, .cel.inp, and .pm.inp files for ABAQUS consumption that is does in the Update ABAQUS open-loop mode, or just the original .inp file with new property descriptions appended?

  • Can one pass more than one argument out of HyperSizer using the FEA Solver Setup dialog box (or any other means)?

  • I assume that when I push the 'Test Solver Execution' button that the argument is sent to the executable listed in the solver path.  Is there any additional undocumented functionality that might be helpful to a developer?
Best regards

-Neergaard

Ryan

  • Administrator
  • *****
  • Posts: 145
    •  
Re: FEM coupling ABAQUS for temperature-dependent materials
« Reply #5 on: March 17, 2016, 01:45:20 PM »
Hi Neergaard,

Immediately before the Abaqus solver is called, the _i.inp, cel.inp, and pm.inp files are generated.
  • cel.inp - contains updated elements and orientations.
  • pm.inp - contains updated sections and meterials.
  • _i.inp - is a copy of the original inp with the contents of the cel and pm files inserted just before the first *Step keyword.

The only arguments that can be passed to the "solver" are listed in the link below. They only relate to the location of the FEM file. You could encode more inputs in the FEM file as ** comments for the Python script to read. You could also put a python file in the same directory as the FEM.
http://hypersizer.com/help_7.1/#HyperFEA/iterate-hyperfea-setup.php

When you implement your own "solver" you only need to make sure that when your script finishes the _i.inp has been executed (as determined by _i.dat and _i.fil files in the same folder). If Abaqus fails with a solver error, HyperSizer should be able to pick it from parsing the dat file.

-Ryan