#! /bin/perl # # ........................................................................ # Name: trilinearex2ipelem.pl # Description: Reads a frontend .exelem file containing 8-noded elements and converts that file to the backend. Very simple e.g. does not handle versions. # Updates: # Usage: trilinearex2ipelem.pl exelemfile ipelemfile # ........................................................................ use strict; if (scalar @ARGV < 2) { print "Usage $0 exelemfile ipelemfile\n"; die; } my $filenameIn = $ARGV[0]; my $filenameOut = $ARGV[1]; my $data; my $number_location; my $element_number; my $number_of_nodes; my $number_of_elements; my $collapsed_basis; my $one; my $two; my $three; my $four; my $five; my $six; my $seven; my $eight; open (INPUT_FILE,"<$filenameIn") || (die "Could not open file $filenameIn"); open (OUTPUT_FILE, ">$filenameOut") || (die "Could not open output file $filenameOut"); $number_of_elements=0; print OUTPUT_FILE <)) { if ($data =~ m/#Nodes=\s*(\d+)/) { $number_of_nodes = $1; } if (($data =~ m/Element:\s*([0-9]+).*/) && ($1 > 0)) { #Only want top level elements. $element_number = $1; #print "found element $1\n"; if ($number_of_nodes == 8) { $number_of_elements++; print OUTPUT_FILE " Element number [1]: $element_number\n"; #Read until we get the nodes while ((defined ($data = )) && !($data =~ m/Nodes:/)) { } #Read the node numbers if ((defined ($data = )) && ($data =~ m/\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)\s*([0-9]*)/)) { $collapsed_basis = 0; $one = $1; $two = $2; $three = $3; $four = $4; $five = $5; $six = $6; $seven = $7; $eight = $8; print OUTPUT_FILE <