File: test_charge_densities.py

package info (click to toggle)
necpp 1.2.6%2Bcvs20070816-1.3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 3,772 kB
  • ctags: 5,989
  • sloc: cpp: 30,761; ansic: 10,162; fortran: 8,339; python: 2,948; makefile: 189; sh: 1
file content (67 lines) | stat: -rw-r--r-- 2,229 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#dipole_anim.nec
#
#CM Simple dipole, with calculation of currents, charges and near field.
#CE
#GW  1   21         0      -0.25      0.0         0       0.25       0.0     0.001
#GE
#EX  0   1   11   00         1         0
#PQ  0,  0
#NE  0,  1,20,20,  0,0.05,0.05,  0,0.05,0.05
#NH  0,  1,20,20,  0,0.05,0.05,  0,0.05,0.05
#RP  0, 19, 36, 1000, 0, 0, 10, 10
#EN

print('beginning of the test')
import sys

print('import of the module')
from PyNEC import *

print('beginning of card input')
#creation of a nec context
context=nec_context()

#get the associated geometry
geo = context.get_geometry()

#add a wire to the geometry
geo.wire(1, 21, 0, -0.25, 0.0, 0, 0.25, 0.0, 0.001, 1, 1)

#end of the geometry input
context.geometry_complete(0)

#add a "ex" card to specify an excitation
context.ex_card(0, 1, 11, 0, 0, 1, 0, 0, 0, 0, 0)

#add a "pq" card to ask for the charge densities to be computed
context.pq_card(0, 0, 0, 0)

#add a "ne" card to ask for the "near electric field pattern" to be computed
context.ne_card(0, 1, 20, 20, 0, 0.05, 0.05, 0, 0.05, 0.05)

#add a "nh" card to ask for the "near magnetic field pattern" to be computed
context.nh_card(0, 1, 20, 20, 0, 0.05, 0.05, 0, 0.05, 0.05)

#add a "rp" card to specify radiation pattern sampling parameters and to cause program execution
context.rp_card(0, 19, 36, 1, 0, 0, 0, 0, 0, 10, 10, 0, 0)

print('end of card input\n')
print('get the currents (here the currents and charge densities datas)\n')
sc = context.get_structure_currents(0)

print('get the array of length of the segment wires for the printing of currents')
print(sc.get_current_segment_length())

print('\nget the array of y-coordinates of segment centers for the printing of charge densities')
print(sc.get_q_density_segment_center_y())

print('\ntry and get the array of x-coordinates of patch centers')
try:
	print(sc.get_patch_center_x())
	print('ERROR - there are no patches !')
	sys.exit(-1)
except Warning, msg :
	print('Warning : '+msg.__str__())
	print("SUCCESS - an exception is raised as there are no patches their datas can't be requested")

print('\nend of the test - you can compare the results with the ones provided by NEC-2 using test_charge_densities.nec as the input file\n')