GiD - The personal pre and post processor

Special fields

  • Array fields

Fields of conditions, problem data or materials could store an array of values, and the length of this array is not predefined, could be set at runtime.


For example, if a material has a variable property (an example would be where a property was dependent on temperature and was defined with several values for several temperatures) a table of changing values may be declared for this property. When the solver evaluates the problem, it reads the values and applies a suitable property value.


The declaration of the table requires two lines of text:
The first is a QUESTION line with a list of alphanumeric values between parentheses.


QUESTION: field_name(column_title_1,...,column_title_n)


These values are the names of each of the columns in the table so that the number of values declared is the number of columns.


This first line is followed by another with the default data values. It starts with the words VALUE: #N#, and is followed by a number that indicates the quantity of elements in the matrix and, finally, the list of values.

VALUE: #N# number_of_values value_1 ... value_m


The number of values m declared for the matrix obviously has to be the number of columns n multiplied by the number of rows to be filled.


e.g.

MATERIAL: Steel
QUESTION: TypeId
VALUE: Metal
STATE: Hidden
QUESTION: Internal_Points(X,Y,Z)
VALUE: #N# 3 0.0 0.0 0.0
HELP: Internal points coordinates
END MATERIAL


and example writing the values of this material from the .bas template: TEMPLATE FILES

*loop materials
*if(strcmp(Matprop(TypeId),"Metal")==0)
*set var N=Matprop(Internal_Points,int)
X Y Z
*for(i=1;i<=N;i=i+3)
*Matprop(Internal_Points,*i) *Matprop(Internal_Points,*operation(i+1)) *Matprop(Internal_Points,*operation(i+2))
*end for
*endif
*end materials

Note that in the example a hidden field named 'TypeId' is used to identify this and its derived materials.


  • Aesthetic fields:

These fields are useful for organizing the information within data files. They make the information shown in the data windows more readable. In this way you can better concentrate on the data properties relevant to the current context.

    • Book: With the Book field it is possible to split the data windows into other windows. For example, we can have two windows for the materials, one for the steels and another for the concretes:
BOOK: Steels
...
All steels come here
...
BOOK: Concretes
...
All concretes come here
...


Options corresponding to books
The same applies to conditions. For general and interval data the book field groups a set of properties.

    • Title: The Title field groups a set of properties on different tabs of one book. All properties appearing after this field will be included on this tab.
TITLE: Basic
...
Basics properties
....
TITLE: Advanced
...
Advanced properties
....


   

    • Help: With the Help field it is possible to assign a description to the data property preceding it. In this way you can inspect the meaning of the property through the help context function by holding the cursor over the property or by right-clicking on it.
QUESTION: X-Constraint#CB#(1,0)
VALUE: 1
HELP: If this flag is set, movement is forbidden along X axis


    • Image: The Image field is useful for inserting descriptive pictures in the data window. The value of this field is the file name of the picture relating to the problem type location.
IMAGE: young.png


Data window with an image

  • Unit field: With this feature it is possible to define and work with properties that have units. GiD is responsible for the conversion between units of the same magnitude
....
QUESTION: Normal_pressure#UNITS#
VALUE: 0.0Pa
...


Data property with units


  • Dependencies: Depending on the value, we can define some behavior associated with the property. For each value we can have a list of actions. The syntax is as follows:
DEPENDENCIES <V1>,[ TITLESTATE,<Title>,<State> ],<A1>,<P1>,<NV1>,...,<An>,<Pn>,<NVn> ) ... ( <Vm>,<Am>,<Pm>,<NVm>,... )


where:

    • <Vi> is the value that triggers the actions. A special value is #DEFAULT#, which refers to all the values not listed.
    • [TITLESTATE,<Title>,<State>] this argument is optional. Titlestate should be used to show or hide book labels. Many Titlestate entries can be given. <Title> is the title defined for a book (TITLE: Title). State is the visualization mode: normal or hidden.
    • <Ai> is the action and can have one of these values: SET,DISABLE, HIDE, RESTORE. All these actions change the value of the property with the following differences:

SET assign the value, triggering its dependencies
DISABLE disables the property
HIDE hides the property
RESTORE brings the property to the enabled and visible state.


Note: SET will trigger its dependencies always, also if #CURRENT# value is used. DISABLE, HIDE and RESTORE usually maintain #CURRENT# value, but if other value is used really is like do also a SET and dependencies will be triggered also.

    • <Pi> is the name of the property to be modified.
    • <NVi> is the new value of <Pi>. A special value is #CURRENT#, which refers to the current value of <Pi>.


Example, when Some_check is 0 the next field Type is hidden.


QUESTION: Some_check#CB#(1,0)
VALUE: 0
DEPENDENCIES: (0,HIDE,Type,#CURRENT#)
DEPENDENCIES: (1,RESTORE,Type,#CURRENT#)
QUESTION: Type#CB#(OPTION_1,OPTION_2)
VALUE: OPTION_1


Example with titlestate:

...
TITLE: General
QUESTION: Type_of_Analysis:#CB#(FILLING,SOLIDIFICATION)
VALUE: SOLIDIFICATION
DEPENDENCIES: (FILLING,TITLESTATE,Filling-Strategy,normal,RESTORE,
Filling_Analysis,GRAVITY,HIDE,Solidification_Analysis,#CURRENT#)
DEPENDENCIES: (SOLIDIFICATION,TITLESTATE,Filling-Strategy,hidden,HIDE,
Filling_Analysis,#CURRENT#,RESTORE,Solidification_Analysis,#CURRENT#)
TITLE: Filling-Strategy
QUESTION: Filling_Analysis:#CB#(GRAVITY,LOW-PRESSURE,FLOW-RATE)
VALUE: GRAVITY
QUESTION: Solidification_Analysis:#CB#(THERMAL,THERMO-MECHANICAL)
VALUE: THERMAL
...


  • State: Defines the state of a field; this state can be: disabled, enabled or hidden. Here is an example:
...
QUESTION: Elastic modulus XX axis
VALUE: 2.1E+11
STATE: HIDDEN
...


  • #MAT#('BookName'): Defines the field as a material, to be selected from the list of materials in the book 'BookName'. Here is an example:
QUESTION:Composition_Material#MAT#(BaseMat)
VALUE:AISI_4340_STEEL


  • TKWIDGET: TkWidget

The Tkwidged special field mechanism allow to customize with Tcl scripting language condition or material fields.
some Tcl procedures are predefined in dev_kit.tcl to be used for common cases, like show current layers, materials, pick a point or node, or select a filename.

    • Layer field:

Declare in the tkwidget field to use the Tcl procedureGidUtils::TkwidgetGetLayername, e.g:

...
QUESTION: your_question
VALUE: your_layername
TKWIDGET: GidUtils::TkwidgetGetLayername
    • Material field:

Declare in the tkwidget field to use the Tcl GidUtils::TkwidgetGetMaterialname e.g:

...
QUESTION: your_question
VALUE: your_materialname
TKWIDGET: GidUtils::TkwidgetGetMaterialname


    • Pick point or node field

Declare in the tkwidget field to use the Tcl procedure GidUtils::TkwidgetPickPointOrNode , e.g.

...
QUESTION: your_question
VALUE: your_node_id
TKWIDGET: GidUtils::TkwidgetPickPointOrNode


    • Select filename field

Declare in the tkwidget field to use the Tcl procedure GidUtils::TkwidgetGetFilenameButton , e.g.

...
QUESTION: your_question
VALUE: your_filename
TKWIDGET: GidUtils::TkwidgetGetFilenameButton
    • Select directory field

Declare in the tkwidget field to use the Tcl procedure GidUtils::TkwidgetGetDirectoryButton , e.g.

...
QUESTION: your_question
VALUE: your_folder
TKWIDGET: GidUtils::TkwidgetGetDirectoryButton


    • Vector field

To pack in a single line the three components of a vector, internally stored in the same question as a list of three real numbers, e.g.

...
QUESTION: your_question
VALUE: vx vy vz
TKWIDGET: GidUtils::TkwidgetGetVector3D


    • Text widget instead of entry widget

To replace the standard single-line entry widget with a multi-line text widget.

...
QUESTION: your_question
VALUE: your_value
TKWIDGET: GidUtils::TkwidgetText


    • Button widget instead of entry widget

To replace the standard entry widget with a button widget with configure options valid for a ttk::button (e.g. the command to be invoked)

...
QUESTION: your_question
VALUE: your_value
TKWIDGET: GidUtils::TkwidgetButton {-command {W "hello world"} -text "Press me"}


    • Configure the entry field widget

procedure to change some configuration of the ttk::entry widget. GidUtils::TkwidgetEntry CONFIGURE {-<option> <value>}

...
QUESTION: your_question
VALUE: your_value
TKWIDGET: GidUtils::TkwidgetEntry CONFIGURE {-width 20}

COPYRIGHT © 2022 · GID · CIMNE