Variables | |
| str | WORK = "/tmp" |
| W | |
| S = StraightLine(W.length) | |
| F = Frame(S) | |
| G = ShellGenerator(W, F, 50.0, 10.0) | |
| B = Builder() | |
| angles | |
| features | |
| kind | |
| k0 | |
| start | |
| count | |
| rows = B.rings[0] | |
| list | ours = [] |
| L = W.length | |
| r = W.layers[0].radius | |
| phi0 = W.layers[0].tapes[0].phi0 | |
| phi1 = W.layers[0].tapes[0].phi1 | |
| nt = count | |
| ns = W.s_partition_count() | |
| geo = os.path.join(WORK, "corc_twistcheck.geo") | |
| out = os.path.join(WORK, "corc_twistcheck.msh") | |
| res | |
| nodes | |
| elements | |
| tri_nodes = set() | |
| pts | |
| tuple | expected = (ns + 1) * (nt + 1) |
| float | worst = 0.0 |
| d = np.linalg.norm(ours - p, axis=1).min() | |
| tuple | ok = expected and worst < 2e-8 |
Independent cross-check: gmsh's own twist extrusion (screw motion, Layers) must reproduce the analytic strip nodes of tape 0 / layer 0 for the straight cable — same discretization, positions equal to 1e-9 (file round trip involved).
| corc.tests.test_twist_crosscheck.angles |
| corc.tests.test_twist_crosscheck.B = Builder() |
| corc.tests.test_twist_crosscheck.count |
| corc.tests.test_twist_crosscheck.d = np.linalg.norm(ours - p, axis=1).min() |
| corc.tests.test_twist_crosscheck.elements |
| corc.tests.test_twist_crosscheck.features |
| corc.tests.test_twist_crosscheck.G = ShellGenerator(W, F, 50.0, 10.0) |
| corc.tests.test_twist_crosscheck.geo = os.path.join(WORK, "corc_twistcheck.geo") |
| corc.tests.test_twist_crosscheck.k0 |
| corc.tests.test_twist_crosscheck.kind |
| corc.tests.test_twist_crosscheck.L = W.length |
| corc.tests.test_twist_crosscheck.nodes |
| corc.tests.test_twist_crosscheck.ns = W.s_partition_count() |
| corc.tests.test_twist_crosscheck.nt = count |
| corc.tests.test_twist_crosscheck.ours = [] |
| corc.tests.test_twist_crosscheck.out = os.path.join(WORK, "corc_twistcheck.msh") |
| corc.tests.test_twist_crosscheck.phi0 = W.layers[0].tapes[0].phi0 |
| corc.tests.test_twist_crosscheck.phi1 = W.layers[0].tapes[0].phi1 |
| corc.tests.test_twist_crosscheck.pts |
| corc.tests.test_twist_crosscheck.r = W.layers[0].radius |
| corc.tests.test_twist_crosscheck.res |
| corc.tests.test_twist_crosscheck.rows = B.rings[0] |
| corc.tests.test_twist_crosscheck.S = StraightLine(W.length) |
| corc.tests.test_twist_crosscheck.start |
| corc.tests.test_twist_crosscheck.tri_nodes = set() |
| corc.tests.test_twist_crosscheck.W |
| str corc.tests.test_twist_crosscheck.WORK = "/tmp" |
| corc.tests.test_twist_crosscheck.worst = 0.0 |