GSM Solver

Copyright (c) 2007 Takuichi Hirano

[Keywords]
Generalized Scattering Matrix (GSM), Scattering Matrix (S-Matrix), Microwave Circuit, Antenna, High Frequency, Electromagnetic Wave, Distributed Constant Circuit, Connection, Mode, Transmission Line, Waveguide, Microstrip Line, Coaxial Cable, Simulator


1. Introduction

1.1 Overview

Generalized Scattering Matrix (GSM) Solver is a free software to solve connected scattering matrix network. User can specify arbitrarily-connected scattering matrix network by using two input files. One input file specifies scattering matrices of each block, another one describes connection network, excitation and matched-load terminal condition.


Fig.1 Arbitrarily-connected scattering matrix network.


2. Agreement on the Use of GSM Solver Software

Copyright (c) 2007 Takuichi Hirano. All rights reserved.

GSM Solver is a freely-available software. Like all software, it is copyrighted. I do not have any responsibilities for problems which will be caused by using this software. It can be included in commercial software packages. I only ask that proper credit be given to the author.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
- Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- If you redistribute with modification by retaining LAPACK routines, you must follow restrictions on the use of LAPACK software because GSM Solver uses "zgesvd.f plus dependencies" of LAPACK.


3. Download (Free Software)

3.1 Windows Console Application

The content of the following distributions are completely the same. The only difference is the kind of archivers. Please download a favorite archive.

Download! :Windows Console Application (gsm_v1_0.lzh)

Download! :Windows Console Application (gsm_v1_0.zip)

Download! :Windows Console Application (gsm_v1_0.tar.gz)

Passed virus scan by Trend Micro Virus Buster 2007 (Program Ver.: 15.00.1433, Engine Ver.: 8.32.1003, Pattern File No.: 4.169.50).

This distribution includes:
* Readme.txt (Simple document and copyright declaration)
* gsm.exe (Windows EXE file; 32-bit executable binary file for console application)
* s_matrix.dat (Sample S-matrix input file of "1. Quarter Wavelength Transformer" in page[1])
* topology.dat (Sample topology input file of "1. Quarter Wavelength Transformer" in page[1])

[1] http://www-antenna.ee.titech.ac.jp/~hira/free_software/gsm_solver/sample/

3.2 Source File (Fortran 90)

Download!: Fortran 90 Source File (gsm.f90)

You need "zgesvd.f plus dependencies" of LAPACK for complete compile because this software uses zgesvd subroutine.


4 Manual

4.1 Example


Fig.2 Quater-wavelength line with lumped impedance termination.

As an example, let us consider the structure as shown in Fig.2 (a). Quarter-wavelength line is connected to the impedance Z. In order to calculate the input impedance from the terminal port, S-parameter representation in Fig.2 (b) is used in GSM Solver. Lengths of connection lines between the blocks are zero (only topology is represented). You can express the length of connection line by S-matrix of a delay line as shown in Fig.2 (b). The followings are input two files to express this situation.

4.2 Input Files

[S-matrix Input File (s_matrix.dat)]

"-------- GSM SOLVER (S-MATRIX INPUT FILE) --------"
"NO. OF BLOCKS", 2
"NO. OF PORTS IN BLOCK 1", 2
"S(1,1) [dB, deg]=", -100.0, 0.0
"S(1,2) [dB, deg]=", 0.0, -90.0
"S(2,1) [dB, deg]=", 0.0, -90.0
"S(2,2) [dB, deg]=", -100.0, 0.0
"NO. OF PORTS IN BLOCK 2", 1
"S(1,1) [dB, deg]=", -6.9897, 63.6439

* Character strings between double or single quotations are for human-friendly and will be ignored in the program.
* The first line is string comment.
* The second line specifies the number of blocks.
* From the third line, the number of blocks and S-matrix of each block are specified.
* If Block M have N ports, the size of scattering matrix [S(i,j)] is N by N. This will be represented by N lines in the S-matrix input file with the form of "S(i,j) [dB, deg]=", Magnitude[dB], Phase[deg]". Variables i and j are outer and inner loop, respectively.

[Toplogy Input File (topology.dat)]

CM -------- GSM SOLVER (TOPOLOGY INPUT FILE) --------
CM CM; COMMENTS
CM CN BLOCKi PORTi BLOCKj PORTj; CONNECT
CM EX BLOCKi PORTi MAG[dB] PHA[deg]; EXCITE
CM LD BLOCKi PORTi; MATCHED LOAD
CM OP BLOCKi PORTi IN_OUT[1=IN, 2=OUT]; OUTPUT
CM ED; END
CN 1 2 2 1
EX 1 1 0.0d0 0.0d0
OP 1 1 2
OP 2 1 1
OP 2 1 2
ED

Command
Function
CM [COMMENTS] Comments. The rest of "CM" will be neglected by the program.
CN [BLOCKi] [PORTj] [BLOCKk] [PORTl] Connects Port j of Block i and Port l of Block k.
EX [BLOCKi] [PORTj] [MAG(dB)] [PHA(deg)] Excitate Port j of Block i. Magnitude and phase can be specified.
LD [BLOCKi] [PORTj] Terminat Port j of Block i with matched load (no reflection).
OP [BLOCKi] [PORTj] [IN OR OUT(1=IN, 2=OUT)] The result of Port j of Block i will be displayed in output file. You can specify input or output.
ED End of topology input file.

* Excitation port is terminated by a matched-load.
* If you do not specify termination at ports, those ports will be terminated by matched-loads.
* The topology input file is read from the top to the bottom line. But the order of commands is not important.
* If "ED" command appears, the rest of commands are neglected.

4.3 Execute

Usage: gsm [input S-matrix file] [input topology file] [output file]

Output is written in output file (result.dat) as follows.

**** INPUT ****
---- READ S MATRICES ----
NO. OF TOTAL BLOCKS= 2
NO. OF TOTAL PORTS= 3
-- BLOCK 1 --
S( 1, 1)= -100.000000000000 [dB],
0.000000000000000E+000 [deg]
S( 1, 2)= 0.000000000000000E+000 [dB],
-90.0000000000000 [deg]
S( 2, 1)= 0.000000000000000E+000 [dB],
-90.0000000000000 [deg]
S( 2, 2)= -100.000000000000 [dB],
0.000000000000000E+000 [deg]
-- BLOCK 2 --
S( 1, 1)= -6.98970000000000 [dB],
63.6439000000000 [deg]
---- END OF READ S MATRICES ----
---- READ TOPOLOGY ----
CM
CM
CM
CM
CM
CM
CN 1 2 2 1
EX 1 1 0.000000000000000E+000 0.000000000000000E+000
OP 1 1 2
OP 2 1 1
OP 2 1 2
ED
---- END OF READ TOPOLOGY ----
NO. OF GSM UNKNOWNS= 5
**** BUILD GSM MATRIX ****
**** SOLVE ****
CONDITION NUMBER= 4.75277868641375
**** OUTPUT ****
(BLOCK, PORT, IN[1] OR OUT[2])=MAGNITUDE [dB], PHASE [deg]
( 1, 1, 2)=
-6.98976897770091 [dB], -116.354722391180 [deg]
( 2, 1, 1)=
1.724490571454202E-005 [dB], -89.9997704000476 [deg]
( 2, 1, 2)=
-6.98968275509429 [dB], -26.3558704000476 [deg]
**** FINISHED ****

4.4 Other Samples

Click Here for Other Samples


5. Technical Notes

PDF File: gsm_technical_notes.pdf


6. Release Notes

[History of GSM Solver releases]


7. Acknowledgement

The author acknowledges for Netlib for providing LAPACK routine.


References

  1. Takuichi HIRANO, Kimio SAKURAI, Jiro HIROKAWA, Makoto ANDO, Tetsuya IDE, Atsushi SASAKI, Kazufumi AZUMA, and Yukihiko NAKATA, "Design of 1m2 order plasma excitation single-layer slotted waveguide array with conducting baffles and quartz glass strips using the GSM-MoM Analysis," IEICE Trans. Commun., Vol.E89-B, No.5, pp.1627-1635, May 2006.
    An example of GSM-MoM method, in which S-matrices are calculated by the MoM. This software, GSM Solver, was born in this study.
  2. R.E. Collin, Foundations for Microwave Engineering, IEEE Press, 2001.
    Generalized scattering matrix (GSM) method, though the meaning is a little different in GSM Solver, is writtein in Section 4.11.
  3. K. Kurokawa, "Power waves and the scattering matrix," IEEE Trans. MTT, vol.13, no.2, pp.194-202, March 1965.
    Birth of the scattering matrix.

Copyright (c) 2007 Takuichi Hirano. All rights reserved.

Back