From 6a2c56fd93309634bde8ec5c9ee4fa2d71bc5db6 Mon Sep 17 00:00:00 2001 From: "STB\\21819203" <21819203@sun.ac.za> Date: Thu, 4 Aug 2022 15:17:04 +0200 Subject: [PATCH 1/4] working on the fast frequency DGFM solver using interpolation --- .../SUNEM_MOM_strip_dipoles_random_array.pre | 134 ++++++++++++++++ examples/skripsie/bow_tie_array_DGFM.pre | 144 +++++++++++++++++ examples/skripsie/bow_tie_array_MoM.pre | 146 ++++++++++++++++++ examples/skripsie/bow_tie_array_driver.m | 68 ++++++++ examples/skripsie/sunem_initialise.m | 50 ++++++ examples/skripsie/sunem_mom_bow_tie_array.pre | 136 ++++++++++++++++ 6 files changed, 678 insertions(+) create mode 100644 examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre create mode 100644 examples/skripsie/bow_tie_array_DGFM.pre create mode 100644 examples/skripsie/bow_tie_array_MoM.pre create mode 100644 examples/skripsie/bow_tie_array_driver.m create mode 100644 examples/skripsie/sunem_initialise.m create mode 100644 examples/skripsie/sunem_mom_bow_tie_array.pre diff --git a/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre b/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre new file mode 100644 index 0000000..bce3352 --- /dev/null +++ b/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre @@ -0,0 +1,134 @@ +** Author: DJ Ludick +** Date: 15.10.2011 +** A planar array built with the TG card and also the FA card +** respectively. Triangle data is written to the *.out file +** The numbering should be identical in both cases. + +******************************* +** General Variables ** +******************************* +#lam = 1 +#freq = #c0/#lam + +******************************* +** Element Variables ** +******************************* +#a = #lam ** square edge length + +#L = 0.45*#lam +#w = 0.02 + +#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis +#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis +#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis + +******************************* +** Meshing ** +******************************* +** Mesh size +#t_edge = #lam/30 ** #lam/15 creates 15 basis-functions per element + ** #lam/30 creates 28 basis-functions per element +#s_rad = 4E-6 +#s_len = #lam/15 +IP #s_rad #t_edge #s_len + + +******************************* +** The Aray element ** +******************************* +** Import mesh model +** IN 8 31 "strip_dipole.cfm" +** +** ** Change labels +** CB: Union1.Face6_1 : 1 +** CB: Union1.Face6_2_1 : 2 + +** Side 1 +DP A 0 0 0 +DP B #w 0 0 +DP C #w #L/2 0 +DP D 0 #L/2 0 +LA 1 +BP A B C D + +** Side 2 +DP E 0 #L/2 0 +DP F #w #L/2 0 +DP G #w #L 0 +DP H 0 #L 0 +LA 2 +BP E F G H + +********************************************************************************** +** Functionality of the 'FA' card, presented by using TG cards ** +********************************************************************************** + +#tg_inc = 100 ** Used to ensure that only the base-element is copied when using + ** the 'TG' card + +******************************* +** Array Variables ** +******************************* + +** Array dimensions +#arr_N = 3 ** Number of elements along X-axis +#arr_M = 1 ** Number of elements along Y-axis + +** offsetts/spacings +#arr_Noff = 0.25*#lam ** Offset of elements along X-axis +#arr_Moff = 0.75*#lam ** Offset of elements along Y-axis + +** Some preparation so that we can identify the base elementa +**CB: 1 : internal_1 +**CB: 2 : internal_2 + +******************************* +** The Aray ** +******************************* +!!print "FA card construction" + +** FA: 0 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff +** Import the array now using the Magus file convention +FA: 0 : 1 : : : : : : : : : : : : "total_array_layout.xml" + +**SU 408 0 + +** End of geometry +EG 0 0 0 0 + +** Control efficient/non-efficient fill of [A], requires the SU card +PS: 0 : 0 : 2 : 0 : 0 + +** Frequency +FR 1 #freq + +** Data output +DA: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 + +** Control preconditioning +CG -1 -1 + +******************************* +** The Excitation ** +******************************* + +** Excited by AE source +AE: 0 : 1 : 2 : 0 : 1 : 1 : 0 + +** Request Currents +OS 1 1 + +** Calculate far-fields along a theta cut +FF 1 181 1 0 0 90 0.5 0 + +**#max_arr_dim =CEIL ((#a/2)*#arr_M) +**!!print #max_arr_dim +**#num_points =200 +**FE: 1 : 1 : #num_points : 1 : 0 : #arr_Noff*#arr_N/2 : -#lam/4 : #lam/15 : : #max_arr_dim/#num_points +** Request E-field (for comparison with MATLAB implementation) +FE: 1 : 1 : 1 : 91 : 2 : 1 : 90 : 0 : 0 : 1 : 1 + + +** End of file +EN + diff --git a/examples/skripsie/bow_tie_array_DGFM.pre b/examples/skripsie/bow_tie_array_DGFM.pre new file mode 100644 index 0000000..208ad3f --- /dev/null +++ b/examples/skripsie/bow_tie_array_DGFM.pre @@ -0,0 +1,144 @@ +** Author: DJ Ludick +** Date: 15.10.2011 +** A planar array built with the TG card and also the FA card +** respectively. Triangle data is written to the *.out file +** The numbering should be identical in both cases. +** +** Update used by NL Kunene for 2022 Skripsie +** Date : 2022-07 + +******************************* +** General Variables ** +******************************* +#lam = 1 +#freq = #c0/#lam +#freq_start = 0.8*#freq +#freq_stop = 1.2*#freq + +******************************* +** Element Variables ** +******************************* +#a = #lam ** square edge length +#L = 0.45*#lam +#w = 0.02 + +#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis +#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis +#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis + +******************************* +** Meshing ** +******************************* +** Mesh size +#t_edge = #lam/15 ** #lam/15 creates 15 basis-functions per element + ** #lam/30 creates 28 basis-functions per element +#s_rad = 4E-6 +#s_len = #lam/15 +IP #s_rad #t_edge #s_len +******************************* +** The Aray element ** +******************************* +** Import mesh model +** IN 8 31 "strip_dipole.cfm" +** +** ** Change labels +** CB: Union1.Face6_1 : 1 +** CB: Union1.Face6_2_1 : 2 + +#b = 6*#w + +** Side 1 +DP A -#b 0 0 +DP B #w+#b 0 0 +DP C #w #L/2 0 +DP D 0 #L/2 0 +LA 1 +BQ A B C D + +** Side 2 +DP E 0 #L/2 0 +DP F #w #L/2 0 +DP G #w+#b #L 0 +DP H -#b #L 0 +LA 2 +BQ E F G H + +********************************************************************************** +** Functionality of the 'FA' card, presented by using TG cards ** +********************************************************************************** + +#tg_inc = 100 ** Used to ensure that only the base-element is copied when using + ** the 'TG' card + +******************************* +** Array Variables ** +******************************* + +** Array dimensions +#arr_N = 10 ** Number of elements along X-axis +#arr_M = 1 ** Number of elements along Y-axis + +** offsetts/spacings +#arr_Noff = #L **0.4*#lam ** Offset of elements along X-axis +#arr_Moff = 1.25*#L **0.4*#lam ** Offset of elements along Y-axis + +** Some preparation so that we can identify the base elementa +CB: 1 : s1 +CB: 2 : s2 + +******************************* +** The Aray ** +******************************* +!!print "FA card construction" + +FA: 1 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff : : : 0 + +**SU 408 0 + +** End of geometry +EG 0 0 0 + +******************************* +** Simulation settings ** +******************************* 0 +** Control efficient/non-efficient fill of [A], requires the SU card +PS: 0 : 1 : 1 : 0 : 0 + +** Frequency +FR: 5 : 0 : : : : #freq_start : : #freq_stop + +** Data output +DA 0 0 0 0 0 0 0 0 0 0 + +** Control preconditioning +CG -1 -1 + +******************************* +** The Excitation ** +******************************* + +** Excited by AE source +** AE: 0 : internal_1 : internal_2 : 0 : 1 : 1 : 0 +AE: 0 : s1 : s2 : 0 : 1 : 1 : 0 + +******************************* +** The Results ** +******************************* +** Request Currents +OS 1 1 + +** ** Calculate far-fields along a theta cut +FF 1 181 1 0 0 90 0.5 0 +FF: 1 : 181 : 1 : 0 : 0 : 0 : 0 : 0.5 : 0 : : : 0 + +** ** Near fields that we defined +#max_arr_dim =CEIL ((#a/2)*#arr_M) +!!print #max_arr_dim +#num_points =300 +FE: 1 : 1 : #num_points : 1 : 0 : (#arr_Noff*#arr_N)/2-0.15 : -0.15 : #lam/15 : : #max_arr_dim/(#num_points+#lam/4) + +FE: 1 : #num_points : 1 : 1 : 0 : -0.15 : (#arr_Moff*#arr_M)/2-0.11 : #lam/15 : 0.0055 : 0 : 0 + +** End of file +EN + diff --git a/examples/skripsie/bow_tie_array_MoM.pre b/examples/skripsie/bow_tie_array_MoM.pre new file mode 100644 index 0000000..af8bd40 --- /dev/null +++ b/examples/skripsie/bow_tie_array_MoM.pre @@ -0,0 +1,146 @@ +** Author: DJ Ludick +** Date: 15.10.2011 +** A planar array built with the TG card and also the FA card +** respectively. Triangle data is written to the *.out file +** The numbering should be identical in both cases. +** +** Update used by NL Kunene for 2022 Skripsie +** Date : 2022-07 + +******************************* +** General Variables ** +******************************* +#lam = 1 +#freq = #c0/#lam +#freq_start = 0.8*#freq +#freq_stop = 1.2*#freq + +******************************* +** Element Variables ** +******************************* +#a = #lam ** square edge length + +#L = 0.45*#lam +#w = 0.02 + +#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis +#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis +#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis + +******************************* +** Meshing ** +******************************* +** Mesh size +#t_edge = #lam/15 ** #lam/15 creates 15 basis-functions per element + ** #lam/30 creates 28 basis-functions per element +#s_rad = 4E-6 +#s_len = #lam/15 +IP #s_rad #t_edge #s_len + + +******************************* +** The Aray element ** +******************************* +** Import mesh model +** IN 8 31 "strip_dipole.cfm" +** +** ** Change labels +** CB: Union1.Face6_1 : 1 +** CB: Union1.Face6_2_1 : 2 + +#b = 6*#w + +** Side 1 +DP A -#b 0 0 +DP B #w+#b 0 0 +DP C #w #L/2 0 +DP D 0 #L/2 0 +LA 1 +BQ A B C D + +** Side 2 +DP E 0 #L/2 0 +DP F #w #L/2 0 +DP G #w+#b #L 0 +DP H -#b #L 0 +LA 2 +BQ E F G H + +********************************************************************************** +** Functionality of the 'FA' card, presented by using TG cards ** +********************************************************************************** + +#tg_inc = 100 ** Used to ensure that only the base-element is copied when using + ** the 'TG' card + +******************************* +** Array Variables ** +******************************* + +** Array dimensions +#arr_N = 10 ** Number of elements along X-axis +#arr_M = 1 ** Number of elements along Y-axis + +** offsetts/spacings +#arr_Noff = #L **0.4*#lam ** Offset of elements along X-axis +#arr_Moff = 1.25*#L **0.4*#lam ** Offset of elements along Y-axis + +** Some preparation so that we can identify the base elementa +CB: 1 : s1 +CB: 2 : s2 + +******************************* +** The Aray ** +******************************* +!!print "FA card construction" + +FA: 0 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff + +**SU 408 0 + +** End of geometry +EG 0 0 0 0 + +******************************* +** Simulation settings ** +******************************* +** Control efficient/non-efficient fill of [A], requires the SU card +PS: 0 : 1 : 1 : 0 : 0 + +** Frequency +FR: 5 : 0 : : : : #freq_start : : #freq_stop + +** Data output +DA 0 0 0 0 0 0 0 0 0 0 + +** Control preconditioning +CG -1 -1 + +******************************* +** The Excitation ** +******************************* + +** Excited by AE source +** AE: 0 : internal_1 : internal_2 : 0 : 1 : 1 : 0 +AE: 0 : s1 : s2 : 0 : 1 : 1 : 0 + +******************************* +** The Results ** +******************************* + +** Request Currents +OS: 1 : : 1 + +** ** Calculate far-fields along a theta cut +FF 1 181 1 0 0 90 0.5 0 +FF: 1 : 181 : 1 : 0 : 0 : 0 : 0 : 0.5 : 0 : : : 0 + +** Near fields that we defined +#max_arr_dim =CEIL ((#a/2)*#arr_M) +!!print #max_arr_dim +#num_points =300 +FE: 1 : 1 : #num_points : 1 : 0 : (#arr_Noff*#arr_N)/2-0.15 : -0.15 : #lam/15 : : #max_arr_dim/(#num_points+#lam/4) +FE: 1 : #num_points : 1 : 1 : 0 : -0.15 : (#arr_Moff*#arr_M)/2-0.11 : #lam/15 : 0.0055 : 0 : 0 +** End of file +EN + diff --git a/examples/skripsie/bow_tie_array_driver.m b/examples/skripsie/bow_tie_array_driver.m new file mode 100644 index 0000000..76bc519 --- /dev/null +++ b/examples/skripsie/bow_tie_array_driver.m @@ -0,0 +1,68 @@ +% Author: Danie Ludick (dludick@sun.ac.za) +% Project: Bowtie array simulation using MoM and DGFM +% +% Note: Each project directory / example directory needs to have a sunem_initialise.m +% script, that is used to setup the correct environment for that example. +% +% Refer to the /doc folder for more information + +% -------------------------------------------------------------------------------------------------- +% Initialise the environment +% -------------------------------------------------------------------------------------------------- +% Project output directory: './dipoles/' +% Debug: True/False +Const = sunem_initialise('bow_tie_array',false); + +% -------------------------------------------------------------------------------------------------- +% Program flow settings +% -------------------------------------------------------------------------------------------------- + +% Choose the solvers that will be executed +Const.runMoMsolver = true; +Const.runDGFMsolver = false; + + + +% -------------------------------------------------------------------------------------------------- +% Define input files for extracting FEKO data +% -------------------------------------------------------------------------------------------------- +Const.FEKOmatfilename = 'bow_tie_array_MoM.mat'; +Const.FEKOstrfilename = 'bow_tie_array_MoM.str'; +Const.FEKOrhsfilename = 'bow_tie_array_MoM.rhs'; +Const.FEKOoutfilename = 'bow_tie_array_MoM.out'; + + +% -------------------------------------------------------------------------------------------------- +% Define output files for transferring expansion coefficients back to FEKO data +% -------------------------------------------------------------------------------------------------- +Const.SUNEMmomstrfilename = ''; %sunem_mom_bow_tie_array.str'; +Const.SUNEMdgfmstrfilename = '';%'sunem_dgfm_bow_tie_array.str'; + +% -------------------------------------------------------------------------------------------------- +% Define additional program flow constants +% -------------------------------------------------------------------------------------------------- +% TO-DO: Setup some documentation for this +% Defined explicitely +%Const.no_mutual_coupling_array = false; % Deactivate coupling between domains. + +% -------------------------------------------------------------------------------------------------- +% Read the MoM matrix equation from the file +% -------------------------------------------------------------------------------------------------- + [Const, zMatrices, yVectors, xVectors] = extractFEKOMoMmatrixEq(Const); + +% -------------------------------------------------------------------------------------------------- +% Parse the setup files to extract the frequency sweep, the geometry and basis function setup +% -------------------------------------------------------------------------------------------------- +% TO-DO: At a later stage we can also add other meshing / geometry +% preprocessxing, e.g. Gmsh or GiD. For now the solver setup is read from FEKO. +[Const, Solver_setup] = parseFEKOoutfile(Const, yVectors); + +% -------------------------------------------------------------------------------------------------- +% Run the EM solver +% -------------------------------------------------------------------------------------------------- +% (Note: We either pass our own (internal) matrices, or those read from FEKO). For this particular +% array configuration, we are not yet supporting radiating elements. But as we are consistent with the +% FEKO mesh, we can just use the FEKO RHS vector. +[Solution] = runEMsolvers(Const, Solver_setup, zMatrices, yVectors, xVectors); + +%Solution.mom has all the solver settings \ No newline at end of file diff --git a/examples/skripsie/sunem_initialise.m b/examples/skripsie/sunem_initialise.m new file mode 100644 index 0000000..5335329 --- /dev/null +++ b/examples/skripsie/sunem_initialise.m @@ -0,0 +1,50 @@ +function [Const] = sunem_initialise(OutputDirName,debug) + %sunem_initialise + % Usage: + % [Const] = sunem_initialise('dipoles', true) + % + % Input Arguments: + % OutputDirName + % The output directory name (where the Temp folder, etc. will be stored) + % debug + % A logical indicating whether the FEKO connect application will run in debug + % mode or not + % + % Output Arguments: + % Const + % Updated global struct (Const) containing the correct file + % paths, version information, etc. + % + % Description: + % Sets up the environment by calling sunem_setup.m + % + % ======================= + % Written by Danie Ludick on 2015-04-10 + % Email: dludick@sun.ac.za + + % Clear the workspace (all except the input arguments) + % The following command works fine in Octave (but not in MATLAB R2009): + is_octave = exist('OCTAVE_VERSION', 'builtin') ~= 0; + if (is_octave) + % -- Octave + clear -exclusive OutputDirName debug is_octave + else + % -- MATLAB + clearvars -except OutputDirName debug is_octave + end%if + + close all + clc + + % Set global directory names + Const.ProjectPath = pwd; % Assume this is called from the examples folder + Const.OutputDirName = OutputDirName; % All project related output (e.g. messages) + Const.debug = debug; + + Const.is_octave = is_octave; % Also save this now to a global constant + + % Switch to the /src directory so that FEKOconnect_setup can be called + cd ..; cd ..; cd src; + + % Call the global setup script to initialise the rest of the environment + Const = sunem_setup(Const); \ No newline at end of file diff --git a/examples/skripsie/sunem_mom_bow_tie_array.pre b/examples/skripsie/sunem_mom_bow_tie_array.pre new file mode 100644 index 0000000..4685267 --- /dev/null +++ b/examples/skripsie/sunem_mom_bow_tie_array.pre @@ -0,0 +1,136 @@ +** Author: DJ Ludick +** Date: 15.10.2011 +** A planar array built with the TG card and also the FA card +** respectively. Triangle data is written to the *.out file +** The numbering should be identical in both cases. + +******************************* +** General Variables ** +******************************* +#lam = 1 +#freq = #c0/#lam + +******************************* +** Element Variables ** +******************************* +#a = #lam ** square edge length + +#L = 0.45*#lam +#w = 0.02 + +#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis +#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis +#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis + +******************************* +** Meshing ** +******************************* +** Mesh size +#t_edge = #lam/15 ** #lam/15 creates 15 basis-functions per element + ** #lam/30 creates 28 basis-functions per element +#s_rad = 4E-6 +#s_len = #lam/15 +IP #s_rad #t_edge #s_len + + +******************************* +** The Aray element ** +******************************* +** Import mesh model +** IN 8 31 "strip_dipole.cfm" +** +** ** Change labels +** CB: Union1.Face6_1 : 1 +** CB: Union1.Face6_2_1 : 2 + +#b = 6*#w + +** Side 1 +DP A -#b 0 0 +DP B #w+#b 0 0 +DP C #w #L/2 0 +DP D 0 #L/2 0 +LA 1 +BQ A B C D + +** Side 2 +DP E 0 #L/2 0 +DP F #w #L/2 0 +DP G #w+#b #L 0 +DP H -#b #L 0 +LA 2 +BQ E F G H + +********************************************************************************** +** Functionality of the 'FA' card, presented by using TG cards ** +********************************************************************************** + +#tg_inc = 100 ** Used to ensure that only the base-element is copied when using + ** the 'TG' card + +******************************* +** Array Variables ** +******************************* + +** Array dimensions +#arr_N = 10 ** Number of elements along X-axis +#arr_M = 1 ** Number of elements along Y-axis + +** offsetts/spacings +#arr_Noff = #L **0.4*#lam ** Offset of elements along X-axis +#arr_Moff = 1.25*#L **0.4*#lam ** Offset of elements along Y-axis + +** Some preparation so that we can identify the base elementa +CB: 1 : s1 +CB: 2 : s2 + +******************************* +** The Aray ** +******************************* +!!print "FA card construction" + +FA: 0 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff + +**SU 408 0 + +** End of geometry +EG 0 0 0 0 + +** Control efficient/non-efficient fill of [A], requires the SU card +PS: 0 : 0 : 2 : 0 : 0 + +** Frequency +FR 1 #freq + +** Data output +DA 0 0 0 0 0 0 0 0 0 0 + +** Control preconditioning +CG -1 -1 + +******************************* +** The Excitation ** +******************************* + +** Excited by AE source +** AE: 0 : internal_1 : internal_2 : 0 : 1 : 1 : 0 +AE: 0 : s1 : s2 : 0 : 1 : 1 : 0 + +** Request Currents +OS 1 1 + +** ** Calculate far-fields along a theta cut +FF 1 181 1 0 0 90 0.5 0 +FF: 1 : 181 : 1 : 0 : 0 : 0 : 0 : 0.5 : 0 : : : 0 + +** +#max_arr_dim =CEIL ((#a/2)*#arr_M) +!!print #max_arr_dim +#num_points =300 +FE: 1 : 1 : #num_points : 1 : 0 : (#arr_Noff*#arr_N)/2-0.15 : -0.15 : #lam/15 : : #max_arr_dim/(#num_points+#lam/4) + +FE: 1 : #num_points : 1 : 1 : 0 : -0.15 : (#arr_Moff*#arr_M)/2-0.11 : #lam/15 : 0.0055 : 0 : 0 + +** End of file +EN + From ec528e9c78e1cf5237e806b58be9b0dfd72dfebd Mon Sep 17 00:00:00 2001 From: "STB\\21819203" <21819203@sun.ac.za> Date: Fri, 5 Aug 2022 11:19:48 +0200 Subject: [PATCH 2/4] Testing --- .../SUNEM_MOM_strip_dipoles_random_array.pre | 134 ----------------- examples/skripsie/sunem_mom_bow_tie_array.pre | 136 ------------------ 2 files changed, 270 deletions(-) delete mode 100644 examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre delete mode 100644 examples/skripsie/sunem_mom_bow_tie_array.pre diff --git a/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre b/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre deleted file mode 100644 index bce3352..0000000 --- a/examples/skripsie/SUNEM_MOM_strip_dipoles_random_array.pre +++ /dev/null @@ -1,134 +0,0 @@ -** Author: DJ Ludick -** Date: 15.10.2011 -** A planar array built with the TG card and also the FA card -** respectively. Triangle data is written to the *.out file -** The numbering should be identical in both cases. - -******************************* -** General Variables ** -******************************* -#lam = 1 -#freq = #c0/#lam - -******************************* -** Element Variables ** -******************************* -#a = #lam ** square edge length - -#L = 0.45*#lam -#w = 0.02 - -#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis -#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis -#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis - -******************************* -** Meshing ** -******************************* -** Mesh size -#t_edge = #lam/30 ** #lam/15 creates 15 basis-functions per element - ** #lam/30 creates 28 basis-functions per element -#s_rad = 4E-6 -#s_len = #lam/15 -IP #s_rad #t_edge #s_len - - -******************************* -** The Aray element ** -******************************* -** Import mesh model -** IN 8 31 "strip_dipole.cfm" -** -** ** Change labels -** CB: Union1.Face6_1 : 1 -** CB: Union1.Face6_2_1 : 2 - -** Side 1 -DP A 0 0 0 -DP B #w 0 0 -DP C #w #L/2 0 -DP D 0 #L/2 0 -LA 1 -BP A B C D - -** Side 2 -DP E 0 #L/2 0 -DP F #w #L/2 0 -DP G #w #L 0 -DP H 0 #L 0 -LA 2 -BP E F G H - -********************************************************************************** -** Functionality of the 'FA' card, presented by using TG cards ** -********************************************************************************** - -#tg_inc = 100 ** Used to ensure that only the base-element is copied when using - ** the 'TG' card - -******************************* -** Array Variables ** -******************************* - -** Array dimensions -#arr_N = 3 ** Number of elements along X-axis -#arr_M = 1 ** Number of elements along Y-axis - -** offsetts/spacings -#arr_Noff = 0.25*#lam ** Offset of elements along X-axis -#arr_Moff = 0.75*#lam ** Offset of elements along Y-axis - -** Some preparation so that we can identify the base elementa -**CB: 1 : internal_1 -**CB: 2 : internal_2 - -******************************* -** The Aray ** -******************************* -!!print "FA card construction" - -** FA: 0 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff -** Import the array now using the Magus file convention -FA: 0 : 1 : : : : : : : : : : : : "total_array_layout.xml" - -**SU 408 0 - -** End of geometry -EG 0 0 0 0 - -** Control efficient/non-efficient fill of [A], requires the SU card -PS: 0 : 0 : 2 : 0 : 0 - -** Frequency -FR 1 #freq - -** Data output -DA: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 - -** Control preconditioning -CG -1 -1 - -******************************* -** The Excitation ** -******************************* - -** Excited by AE source -AE: 0 : 1 : 2 : 0 : 1 : 1 : 0 - -** Request Currents -OS 1 1 - -** Calculate far-fields along a theta cut -FF 1 181 1 0 0 90 0.5 0 - -**#max_arr_dim =CEIL ((#a/2)*#arr_M) -**!!print #max_arr_dim -**#num_points =200 -**FE: 1 : 1 : #num_points : 1 : 0 : #arr_Noff*#arr_N/2 : -#lam/4 : #lam/15 : : #max_arr_dim/#num_points -** Request E-field (for comparison with MATLAB implementation) -FE: 1 : 1 : 1 : 91 : 2 : 1 : 90 : 0 : 0 : 1 : 1 - - -** End of file -EN - diff --git a/examples/skripsie/sunem_mom_bow_tie_array.pre b/examples/skripsie/sunem_mom_bow_tie_array.pre deleted file mode 100644 index 4685267..0000000 --- a/examples/skripsie/sunem_mom_bow_tie_array.pre +++ /dev/null @@ -1,136 +0,0 @@ -** Author: DJ Ludick -** Date: 15.10.2011 -** A planar array built with the TG card and also the FA card -** respectively. Triangle data is written to the *.out file -** The numbering should be identical in both cases. - -******************************* -** General Variables ** -******************************* -#lam = 1 -#freq = #c0/#lam - -******************************* -** Element Variables ** -******************************* -#a = #lam ** square edge length - -#L = 0.45*#lam -#w = 0.02 - -#ell_xoff = 0*#lam ** element offset, with regards to global co-ordinate X-axis -#ell_yoff = 0*#lam ** element offset, with regards to global co-ordinate Y-axis -#ell_zoff = 0*#lam ** element offset, with regards to global co-ordinate Z-axis - -******************************* -** Meshing ** -******************************* -** Mesh size -#t_edge = #lam/15 ** #lam/15 creates 15 basis-functions per element - ** #lam/30 creates 28 basis-functions per element -#s_rad = 4E-6 -#s_len = #lam/15 -IP #s_rad #t_edge #s_len - - -******************************* -** The Aray element ** -******************************* -** Import mesh model -** IN 8 31 "strip_dipole.cfm" -** -** ** Change labels -** CB: Union1.Face6_1 : 1 -** CB: Union1.Face6_2_1 : 2 - -#b = 6*#w - -** Side 1 -DP A -#b 0 0 -DP B #w+#b 0 0 -DP C #w #L/2 0 -DP D 0 #L/2 0 -LA 1 -BQ A B C D - -** Side 2 -DP E 0 #L/2 0 -DP F #w #L/2 0 -DP G #w+#b #L 0 -DP H -#b #L 0 -LA 2 -BQ E F G H - -********************************************************************************** -** Functionality of the 'FA' card, presented by using TG cards ** -********************************************************************************** - -#tg_inc = 100 ** Used to ensure that only the base-element is copied when using - ** the 'TG' card - -******************************* -** Array Variables ** -******************************* - -** Array dimensions -#arr_N = 10 ** Number of elements along X-axis -#arr_M = 1 ** Number of elements along Y-axis - -** offsetts/spacings -#arr_Noff = #L **0.4*#lam ** Offset of elements along X-axis -#arr_Moff = 1.25*#L **0.4*#lam ** Offset of elements along Y-axis - -** Some preparation so that we can identify the base elementa -CB: 1 : s1 -CB: 2 : s2 - -******************************* -** The Aray ** -******************************* -!!print "FA card construction" - -FA: 0 : 3 : #arr_N : #arr_M : : #arr_Noff : #arr_Moff - -**SU 408 0 - -** End of geometry -EG 0 0 0 0 - -** Control efficient/non-efficient fill of [A], requires the SU card -PS: 0 : 0 : 2 : 0 : 0 - -** Frequency -FR 1 #freq - -** Data output -DA 0 0 0 0 0 0 0 0 0 0 - -** Control preconditioning -CG -1 -1 - -******************************* -** The Excitation ** -******************************* - -** Excited by AE source -** AE: 0 : internal_1 : internal_2 : 0 : 1 : 1 : 0 -AE: 0 : s1 : s2 : 0 : 1 : 1 : 0 - -** Request Currents -OS 1 1 - -** ** Calculate far-fields along a theta cut -FF 1 181 1 0 0 90 0.5 0 -FF: 1 : 181 : 1 : 0 : 0 : 0 : 0 : 0.5 : 0 : : : 0 - -** -#max_arr_dim =CEIL ((#a/2)*#arr_M) -!!print #max_arr_dim -#num_points =300 -FE: 1 : 1 : #num_points : 1 : 0 : (#arr_Noff*#arr_N)/2-0.15 : -0.15 : #lam/15 : : #max_arr_dim/(#num_points+#lam/4) - -FE: 1 : #num_points : 1 : 1 : 0 : -0.15 : (#arr_Moff*#arr_M)/2-0.11 : #lam/15 : 0.0055 : 0 : 0 - -** End of file -EN - From 52efc71152a26cdbebc044a0986c768eda835814 Mon Sep 17 00:00:00 2001 From: 21819203 <21819203@sun.ac.za> Date: Fri, 5 Aug 2022 18:50:45 +0200 Subject: [PATCH 3/4] Testing --- src/MoMinterface/runMoMsolver.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MoMinterface/runMoMsolver.m b/src/MoMinterface/runMoMsolver.m index f18dece..6b31e6a 100644 --- a/src/MoMinterface/runMoMsolver.m +++ b/src/MoMinterface/runMoMsolver.m @@ -40,7 +40,7 @@ mom.name = 'mom'; Nmom = Solver_setup.num_mom_basis_functions; % Total number of basis functions for whole problem %numSols = xVectors.numSols; % The number of solutions configurations - mom.numSols = 1; %numSols; % For now, set to 1. (TO-DO: Update) + mom.numSols = 1; %numSols; % For now, set to 1. (TO-DO: Update) numFreq = Solver_setup.frequencies.freq_num; % The number of frequency points to process numRHSperFreq = mom.numSols / numFreq; % The number of solutions per frequency point. % For now, should be 1 (TO-DO: Update) From 8cadb4de00eca083356e27fa8b552a609dc311f6 Mon Sep 17 00:00:00 2001 From: 21819203 <21819203@sun.ac.za> Date: Sat, 6 Aug 2022 16:13:55 +0200 Subject: [PATCH 4/4] Update bow_tie_array_driver.m --- examples/skripsie/bow_tie_array_driver.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/skripsie/bow_tie_array_driver.m b/examples/skripsie/bow_tie_array_driver.m index 76bc519..6ccc073 100644 --- a/examples/skripsie/bow_tie_array_driver.m +++ b/examples/skripsie/bow_tie_array_driver.m @@ -35,7 +35,7 @@ % -------------------------------------------------------------------------------------------------- % Define output files for transferring expansion coefficients back to FEKO data % -------------------------------------------------------------------------------------------------- -Const.SUNEMmomstrfilename = ''; %sunem_mom_bow_tie_array.str'; +Const.SUNEMmomstrfilename = ''; %'sunem_mom_bow_tie_array.str'; Const.SUNEMdgfmstrfilename = '';%'sunem_dgfm_bow_tie_array.str'; % --------------------------------------------------------------------------------------------------