FeResPost Web Site                     FeResPost Online User Manual

IV.2.2.3 Group examples

One presents here several examples illustrating the manipulation of Groups in FeResPost. They show how the Groups defined in the DataBase can be inspected, and how new Groups can be constructed and added to the DataBase.

IV.2.2.3.1 Printing the list of a DataBase’s Groups

It shows how it is possible to obtain the list of Groups contained in a DataBase. This may be useful if one wants to check whether all Groups read from a session file have been correctly integrated in the DataBase. The ruby program looks like:

# Creates  and initializes the DataBase :

   db=NastranDb.new()
   db.Name="tmpDB"
   db.readBdf("../../MODEL/MAINS/unit_xyz.bdf")
   db.readGroupsFromPatranSession("../../MODEL/PATRAN/groups.ses")

# Prints all the group names :

   puts db.getAllGroupNames()

The last line performs the printing of the names of all Groups contained in the DataBase. The other lines are for DataBase creation and initialization.

The example is given in file "RUBY/EX02/printGroupNames.rb".

IV.2.2.3.2 Content of DataBase’s Groups

In the previous example one simply printed the list of the names of Groups contained in a DataBase. In this new examples, information is also printed on the content of each Group. Practically, this is done as follows:

The program looks like this:

# Creates  and initializes the DataBase :

   db=NastranDb.new()
   db.Name="tmpDB"
   db.readBdf("../../MODEL/MAINS/unit_xyz.bdf")
   db.readGroupsFromPatranSession("../../MODEL/PATRAN/groups.ses")

# Prints Groups’ data :

   printf("%20s%10s%10s%10s%10s\n","groupName","Nodes",\
      "Elements","RBEss","CoordSys")
   db.each_groupName do |groupName|
      grp = db.getGroupCopy(groupName)
      nodesNbr = grp.NbrElements
      elementsNbr = grp.NbrNodes
      rbesNbr = grp.NbrRbes
      coordNbr = grp.NbrCoordsys
      printf("%20s%10d%10d%10d%10d\n",groupName,nodesNbr,\
         elementsNbr,rbessNbr,coordNbr)
   end

The example is given in file "RUBY/EX02/printGroups.rb".

IV.2.2.3.3 Printing a Patran session file

The third example prints Groups defined in a Patran session file without importing them into a DataBase. Groups are directly read into a Hash object with the following statement:

   h=Post.readGroupsFromPatranSession("../../MODEL/PATRAN/groups.ses")

Then, for each Group, the entities are printed as lists of integer. One shows below how it is done for the nodes:

   nbrEntitiesPerLine=8

   h.each do |id,grp|
      os.printf("Group \"%s\":\n\n",id)

      ...

      nbr=grp.getNbrEntitiesByType("Node")
      os.printf("   Nbr Nodes: %d",nbr)
      counter=0
      grp.each_node do |id|
         if (counter%nbrEntitiesPerLine==0) then
            os.printf("\n      ")
         end
         os.printf("%8d",id)
         counter+=1
      end
      os.printf("\n\n")

      ...

   end

The example is given in file "RUBY/EX02/writeGroupEntities.rb".