8 |
|
use strict; |
9 |
|
use File::Temp qw/ :mktemp /; |
10 |
|
sub userror { |
11 |
< |
print STDERR "Usage: genBSDF [-n Nproc][-c Nsamp][-t{3|4} Nlog2][-r \"ropts\"][-dim xmin xmax ymin ymax zmin zmax][{+|-}f][{+|-}b][{+|-}mgf][{+|-}geom] [input ..]\n"; |
11 |
> |
print STDERR "Usage: genBSDF [-n Nproc][-c Nsamp][-t{3|4} Nlog2][-r \"ropts\"][-dim xmin xmax ymin ymax zmin zmax][{+|-}f][{+|-}b][{+|-}mgf][{+|-}geom units] [input ..]\n"; |
12 |
|
exit 1; |
13 |
|
} |
14 |
|
my $td = mkdtemp("/tmp/genBSDF.XXXXXX"); |
437 |
|
"-o '$td/%s.flt' -m $fmodnm -m $bmodnm $octree"; |
438 |
|
my $rccmd = "rcalc -e '$tcal' " . |
439 |
|
"-e 'mod(n,d):n-floor(n/d)*d' -e 'Kbin=mod(recno-.999,$ndiv)' " . |
440 |
< |
q{-if3 -e 'oval=(0.265*$1+0.670*$2+0.065*$3)/KprojOmega' } . |
441 |
< |
q[-o '${ oval },']; |
440 |
> |
q{-if3 -e '$1=(0.265*$1+0.670*$2+0.065*$3)/KprojOmega' }; |
441 |
|
if ( $doforw ) { |
442 |
|
$cmd = "cnt $ndiv $ny $nx | rcalc -of -e '$tcal' " . |
443 |
|
"-e 'xp=(\$3+rand(.12*recno+288))*(($dim[1]-$dim[0])/$nx)+$dim[0]' " . |
564 |
|
# Output front transmission (transposed order) |
565 |
|
for (my $od = 0; $od < $ndiv; $od++) { |
566 |
|
for (my $id = 0; $id < $ndiv; $id++) { |
567 |
< |
print $tfarr[$ndiv*$id + $od]; |
567 |
> |
print $tfarr[$ndiv*$id + $od], ",\n"; |
568 |
|
} |
569 |
|
print "\n"; |
570 |
|
} |
587 |
|
# Output front reflection (reciprocity averaging) |
588 |
|
for (my $od = 0; $od < $ndiv; $od++) { |
589 |
|
for (my $id = 0; $id < $ndiv; $id++) { |
590 |
< |
print .5*($rfarr[$ndiv*$id + $od] + $rfarr[$ndiv*$od + $id]); |
590 |
> |
print .5*($rfarr[$ndiv*$id + $od] + $rfarr[$ndiv*$od + $id]), ",\n"; |
591 |
|
} |
592 |
|
print "\n"; |
593 |
|
} |
614 |
|
# Output back transmission (transposed order) |
615 |
|
for (my $od = 0; $od < $ndiv; $od++) { |
616 |
|
for (my $id = 0; $id < $ndiv; $id++) { |
617 |
< |
print $tbarr[$ndiv*$id + $od]; |
617 |
> |
print $tbarr[$ndiv*$id + $od], ",\n"; |
618 |
|
} |
619 |
|
print "\n"; |
620 |
|
} |
637 |
|
# Output back reflection (reciprocity averaging) |
638 |
|
for (my $od = 0; $od < $ndiv; $od++) { |
639 |
|
for (my $id = 0; $id < $ndiv; $id++) { |
640 |
< |
print .5*($rbarr[$ndiv*$id + $od] + $rbarr[$ndiv*$od + $id]); |
640 |
> |
print .5*($rbarr[$ndiv*$id + $od] + $rbarr[$ndiv*$od + $id]), ",\n"; |
641 |
|
} |
642 |
|
print "\n"; |
643 |
|
} |