FEM: elmer equation flux, better name without word solver

This commit is contained in:
Bernd Hahnebach
2020-06-29 22:28:26 +02:00
parent 0c1f99a30c
commit 9bfd947886
21 changed files with 3590 additions and 61 deletions

View File

@@ -0,0 +1,4 @@
SUMMARY OF C0NVERGENCE INFORMATION
STEP INC ATT ITER CONT. RESID. CORR. RESID. CORR.
EL. FORCE DISP FLUX TEMP.
(#) (%) (%) (%) (%)

View File

@@ -0,0 +1,4 @@
total force (fx,fy,fz) for set FEMCONSTRAINTFIXED and time 0.1000000E+01
-2.399646E-05 2.305462E-05 9.000000E+06

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,921 @@
** written by FreeCAD inp file writer for CalculiX,Abaqus meshes
** highest dimension mesh elements only.
** Nodes
*Node, NSET=Nall
1, 0, 0, 1000
2, 0, 0, 0
3, 0, 1000, 1000
4, 0, 1000, 0
5, 8000, 0, 1000
6, 8000, 0, 0
7, 8000, 1000, 1000
8, 8000, 1000, 0
9, 0, 0, 500
10, 0, 0, 250
11, 0, 0, 750
12, 0, 500, 1000
13, 0, 250, 1000
14, 0, 750, 1000
15, 0, 1000, 500
16, 0, 1000, 250
17, 0, 1000, 750
18, 0, 500, 0
19, 0, 250, 0
20, 0, 750, 0
21, 8000, 0, 500
22, 8000, 0, 250
23, 8000, 0, 750
24, 8000, 500, 1000
25, 8000, 250, 1000
26, 8000, 750, 1000
27, 8000, 1000, 500
28, 8000, 1000, 250
29, 8000, 1000, 750
30, 8000, 500, 0
31, 8000, 250, 0
32, 8000, 750, 0
33, 800, 0, 0
34, 1600, 0, 0
35, 2400, 0, 0
36, 3200, 0, 0
37, 4000, 0, 0
38, 4800, 0, 0
39, 5600, 0, 0
40, 6400, 0, 0
41, 7200, 0, 0
42, 400, 0, 0
43, 1200, 0, 0
44, 2000, 0, 0
45, 2800, 0, 0
46, 3600, 0, 0
47, 4400, 0, 0
48, 5200, 0, 0
49, 6000, 0, 0
50, 6800, 0, 0
51, 7600, 0, 0
52, 800, 0, 1000
53, 1600, 0, 1000
54, 2400, 0, 1000
55, 3200, 0, 1000
56, 4000, 0, 1000
57, 4800, 0, 1000
58, 5600, 0, 1000
59, 6400, 0, 1000
60, 7200, 0, 1000
61, 400, 0, 1000
62, 1200, 0, 1000
63, 2000, 0, 1000
64, 2800, 0, 1000
65, 3600, 0, 1000
66, 4400, 0, 1000
67, 5200, 0, 1000
68, 6000, 0, 1000
69, 6800, 0, 1000
70, 7600, 0, 1000
71, 800, 1000, 0
72, 1600, 1000, 0
73, 2400, 1000, 0
74, 3200, 1000, 0
75, 4000, 1000, 0
76, 4800, 1000, 0
77, 5600, 1000, 0
78, 6400, 1000, 0
79, 7200, 1000, 0
80, 400, 1000, 0
81, 1200, 1000, 0
82, 2000, 1000, 0
83, 2800, 1000, 0
84, 3600, 1000, 0
85, 4400, 1000, 0
86, 5200, 1000, 0
87, 6000, 1000, 0
88, 6800, 1000, 0
89, 7600, 1000, 0
90, 800, 1000, 1000
91, 1600, 1000, 1000
92, 2400, 1000, 1000
93, 3200, 1000, 1000
94, 4000, 1000, 1000
95, 4800, 1000, 1000
96, 5600, 1000, 1000
97, 6400, 1000, 1000
98, 7200, 1000, 1000
99, 400, 1000, 1000
100, 1200, 1000, 1000
101, 2000, 1000, 1000
102, 2800, 1000, 1000
103, 3600, 1000, 1000
104, 4400, 1000, 1000
105, 5200, 1000, 1000
106, 6000, 1000, 1000
107, 6800, 1000, 1000
108, 7600, 1000, 1000
109, 0, 500, 500
110, 0, 250, 750
111, 0, 750, 250
112, 0, 750, 750
113, 0, 250, 250
114, 0, 125, 625
115, 0, 125, 875
116, 0, 375, 875
117, 0, 125, 375
118, 0, 125, 125
119, 0, 375, 125
120, 0, 625, 875
121, 0, 875, 875
122, 0, 875, 625
123, 0, 875, 375
124, 0, 875, 125
125, 0, 625, 125
126, 0, 375, 625
127, 0, 250, 500
128, 0, 375, 375
129, 0, 500, 750
130, 0, 625, 625
131, 0, 625, 375
132, 0, 750, 500
133, 0, 500, 250
134, 8000, 500, 500
135, 8000, 250, 750
136, 8000, 750, 250
137, 8000, 750, 750
138, 8000, 250, 250
139, 8000, 125, 625
140, 8000, 125, 875
141, 8000, 375, 875
142, 8000, 125, 125
143, 8000, 125, 375
144, 8000, 375, 125
145, 8000, 625, 875
146, 8000, 875, 875
147, 8000, 875, 625
148, 8000, 875, 375
149, 8000, 875, 125
150, 8000, 625, 125
151, 8000, 250, 500
152, 8000, 375, 625
153, 8000, 375, 375
154, 8000, 500, 750
155, 8000, 625, 625
156, 8000, 750, 500
157, 8000, 625, 375
158, 8000, 500, 250
159, 6000, 0, 500
160, 6800, 0, 500
161, 3600, 0, 500
162, 5200, 0, 500
163, 2000, 0, 500
164, 4400, 0, 500
165, 1200, 0, 500
166, 2800, 0, 500
167, 7507.738095238, 0, 500
168, 492.2619047619, 0, 500
169, 246.130952381, 0, 500
170, 246.130952381, 0, 750
171, 646.130952381, 0, 750
172, 246.130952381, 0, 250
173, 646.130952381, 0, 250
174, 7753.869047619, 0, 500
175, 7753.869047619, 0, 750
176, 7353.869047619, 0, 750
177, 7753.869047619, 0, 250
178, 7353.869047619, 0, 250
179, 1400, 0, 250
180, 1000, 0, 250
181, 846.130952381, 0, 500
182, 2200, 0, 250
183, 1800, 0, 250
184, 1600, 0, 500
185, 3000, 0, 250
186, 2600, 0, 250
187, 2400, 0, 500
188, 3800, 0, 250
189, 3400, 0, 250
190, 3200, 0, 500
191, 4600, 0, 250
192, 4200, 0, 250
193, 4000, 0, 500
194, 5400, 0, 250
195, 5000, 0, 250
196, 4800, 0, 500
197, 6200, 0, 250
198, 5800, 0, 250
199, 5600, 0, 500
200, 7000, 0, 250
201, 6600, 0, 250
202, 6400, 0, 500
203, 7153.869047619, 0, 500
204, 1400, 0, 750
205, 1000, 0, 750
206, 2200, 0, 750
207, 1800, 0, 750
208, 3000, 0, 750
209, 2600, 0, 750
210, 3800, 0, 750
211, 3400, 0, 750
212, 4600, 0, 750
213, 4200, 0, 750
214, 5400, 0, 750
215, 5000, 0, 750
216, 6200, 0, 750
217, 5800, 0, 750
218, 7000, 0, 750
219, 6600, 0, 750
220, 6000, 1000, 500
221, 6800, 1000, 500
222, 3600, 1000, 500
223, 5200, 1000, 500
224, 2000, 1000, 500
225, 4400, 1000, 500
226, 1200, 1000, 500
227, 2800, 1000, 500
228, 7507.738095238, 1000, 500
229, 492.2619047619, 1000, 500
230, 246.130952381, 1000, 750
231, 246.130952381, 1000, 500
232, 646.130952381, 1000, 750
233, 246.130952381, 1000, 250
234, 646.130952381, 1000, 250
235, 7753.869047619, 1000, 500
236, 7753.869047619, 1000, 750
237, 7353.869047619, 1000, 750
238, 7753.869047619, 1000, 250
239, 7353.869047619, 1000, 250
240, 1000, 1000, 250
241, 1400, 1000, 250
242, 846.130952381, 1000, 500
243, 1800, 1000, 250
244, 2200, 1000, 250
245, 1600, 1000, 500
246, 2600, 1000, 250
247, 3000, 1000, 250
248, 2400, 1000, 500
249, 3400, 1000, 250
250, 3800, 1000, 250
251, 3200, 1000, 500
252, 4200, 1000, 250
253, 4600, 1000, 250
254, 4000, 1000, 500
255, 5000, 1000, 250
256, 5400, 1000, 250
257, 4800, 1000, 500
258, 5800, 1000, 250
259, 6200, 1000, 250
260, 5600, 1000, 500
261, 6600, 1000, 250
262, 7000, 1000, 250
263, 6400, 1000, 500
264, 7153.869047619, 1000, 500
265, 1400, 1000, 750
266, 1000, 1000, 750
267, 2200, 1000, 750
268, 1800, 1000, 750
269, 3000, 1000, 750
270, 2600, 1000, 750
271, 3800, 1000, 750
272, 3400, 1000, 750
273, 4600, 1000, 750
274, 4200, 1000, 750
275, 5400, 1000, 750
276, 5000, 1000, 750
277, 6200, 1000, 750
278, 5800, 1000, 750
279, 7000, 1000, 750
280, 6600, 1000, 750
281, 6800, 500, 0
282, 6000, 500, 0
283, 4400, 500, 0
284, 1200, 500, 0
285, 2800, 500, 0
286, 3600, 500, 0
287, 5200, 500, 0
288, 2000, 500, 0
289, 7507.738095238, 500, 0
290, 492.2619047619, 500, 0
291, 246.130952381, 500, 0
292, 246.130952381, 250, 0
293, 646.130952381, 250, 0
294, 246.130952381, 750, 0
295, 646.130952381, 750, 0
296, 7753.869047619, 500, 0
297, 7753.869047619, 250, 0
298, 7353.869047619, 250, 0
299, 7753.869047619, 750, 0
300, 7353.869047619, 750, 0
301, 1400, 250, 0
302, 1000, 250, 0
303, 846.130952381, 500, 0
304, 2200, 250, 0
305, 1800, 250, 0
306, 1600, 500, 0
307, 3000, 250, 0
308, 2600, 250, 0
309, 2400, 500, 0
310, 3800, 250, 0
311, 3400, 250, 0
312, 3200, 500, 0
313, 4600, 250, 0
314, 4200, 250, 0
315, 4000, 500, 0
316, 5400, 250, 0
317, 5000, 250, 0
318, 4800, 500, 0
319, 6200, 250, 0
320, 5800, 250, 0
321, 5600, 500, 0
322, 7000, 250, 0
323, 6600, 250, 0
324, 6400, 500, 0
325, 7153.869047619, 500, 0
326, 1400, 750, 0
327, 1000, 750, 0
328, 2200, 750, 0
329, 1800, 750, 0
330, 3000, 750, 0
331, 2600, 750, 0
332, 3800, 750, 0
333, 3400, 750, 0
334, 4600, 750, 0
335, 4200, 750, 0
336, 5400, 750, 0
337, 5000, 750, 0
338, 6200, 750, 0
339, 5800, 750, 0
340, 7000, 750, 0
341, 6600, 750, 0
342, 6800, 500, 1000
343, 6000, 500, 1000
344, 5200, 500, 1000
345, 2800, 500, 1000
346, 3600, 500, 1000
347, 4400, 500, 1000
348, 1200, 500, 1000
349, 2000, 500, 1000
350, 7507.738095238, 500, 1000
351, 492.2619047619, 500, 1000
352, 246.130952381, 250, 1000
353, 246.130952381, 500, 1000
354, 646.130952381, 250, 1000
355, 246.130952381, 750, 1000
356, 646.130952381, 750, 1000
357, 7753.869047619, 500, 1000
358, 7753.869047619, 250, 1000
359, 7353.869047619, 250, 1000
360, 7753.869047619, 750, 1000
361, 7353.869047619, 750, 1000
362, 1400, 250, 1000
363, 1000, 250, 1000
364, 846.130952381, 500, 1000
365, 2200, 250, 1000
366, 1800, 250, 1000
367, 1600, 500, 1000
368, 3000, 250, 1000
369, 2600, 250, 1000
370, 2400, 500, 1000
371, 3800, 250, 1000
372, 3400, 250, 1000
373, 3200, 500, 1000
374, 4600, 250, 1000
375, 4200, 250, 1000
376, 4000, 500, 1000
377, 5400, 250, 1000
378, 5000, 250, 1000
379, 4800, 500, 1000
380, 6200, 250, 1000
381, 5800, 250, 1000
382, 5600, 500, 1000
383, 7000, 250, 1000
384, 6600, 250, 1000
385, 6400, 500, 1000
386, 7153.869047619, 500, 1000
387, 1000, 750, 1000
388, 1400, 750, 1000
389, 1800, 750, 1000
390, 2200, 750, 1000
391, 2600, 750, 1000
392, 3000, 750, 1000
393, 3400, 750, 1000
394, 3800, 750, 1000
395, 4200, 750, 1000
396, 4600, 750, 1000
397, 5000, 750, 1000
398, 5400, 750, 1000
399, 5800, 750, 1000
400, 6200, 750, 1000
401, 6600, 750, 1000
402, 7000, 750, 1000
403, 7153.869047619, 500, 500
404, 7507.738095238, 500, 500
405, 7507.738095238, 250, 250
406, 7507.738095238, 750, 250
407, 7153.869047619, 250, 250
408, 7153.869047619, 250, 750
409, 7153.869047619, 750, 750
410, 7507.738095238, 750, 750
411, 7507.738095238, 250, 750
412, 846.130952381, 750, 250
413, 492.2619047619, 750, 250
414, 492.2619047619, 250, 250
415, 492.2619047619, 500, 500
416, 846.130952381, 250, 250
417, 492.2619047619, 750, 750
418, 846.130952381, 750, 750
419, 492.2619047619, 250, 750
420, 846.130952381, 250, 750
421, 6800, 500, 500
422, 7153.869047619, 750, 250
423, 6800, 250, 750
424, 1200, 500, 500
425, 6400, 500, 500
426, 6400, 750, 250
427, 6800, 250, 250
428, 6400, 250, 250
429, 6000, 750, 250
430, 5600, 750, 750
431, 5600, 500, 500
432, 6000, 500, 500
433, 6000, 750, 750
434, 5600, 750, 250
435, 5200, 750, 750
436, 6800, 750, 750
437, 6400, 750, 750
438, 6800, 750, 250
439, 5200, 750, 250
440, 5200, 500, 500
441, 6400, 250, 750
442, 1600, 250, 250
443, 1600, 250, 750
444, 1200, 250, 750
445, 1200, 250, 250
446, 2000, 750, 250
447, 1600, 500, 500
448, 1600, 750, 750
449, 1200, 750, 750
450, 1600, 750, 250
451, 6000, 250, 250
452, 6000, 250, 750
453, 5600, 250, 750
454, 2000, 500, 500
455, 2000, 750, 750
456, 4800, 750, 750
457, 4400, 500, 500
458, 4800, 750, 250
459, 4800, 500, 500
460, 5200, 250, 750
461, 5200, 250, 250
462, 4800, 250, 750
463, 5600, 250, 250
464, 4400, 750, 750
465, 4400, 750, 250
466, 4800, 250, 250
467, 4400, 250, 750
468, 4400, 250, 250
469, 4000, 500, 500
470, 4000, 250, 250
471, 1200, 750, 250
472, 2400, 250, 250
473, 2800, 250, 750
474, 2400, 500, 500
475, 2400, 250, 750
476, 4000, 750, 250
477, 4000, 750, 750
478, 3600, 750, 250
479, 3600, 750, 750
480, 3600, 500, 500
481, 2000, 250, 250
482, 2800, 250, 250
483, 2800, 500, 500
484, 3200, 250, 250
485, 3200, 500, 500
486, 2000, 250, 750
487, 2400, 750, 750
488, 2400, 750, 250
489, 3200, 750, 750
490, 3200, 750, 250
491, 2800, 750, 250
492, 2800, 750, 750
493, 3600, 250, 250
494, 3600, 250, 750
495, 3200, 250, 750
496, 4000, 250, 750
497, 7753.869047619, 750, 500
498, 7753.869047619, 250, 500
499, 7753.869047619, 500, 250
500, 7753.869047619, 500, 750
501, 246.130952381, 500, 250
502, 246.130952381, 750, 500
503, 246.130952381, 250, 500
504, 246.130952381, 500, 750
505, 7753.869047619, 625, 875
506, 7753.869047619, 875, 625
507, 7753.869047619, 125, 625
508, 7753.869047619, 375, 875
509, 7753.869047619, 375, 125
510, 7753.869047619, 125, 375
511, 7753.869047619, 875, 375
512, 7753.869047619, 625, 125
513, 246.130952381, 375, 125
514, 246.130952381, 125, 375
515, 246.130952381, 625, 125
516, 246.130952381, 875, 375
517, 246.130952381, 375, 875
518, 246.130952381, 125, 625
519, 246.130952381, 875, 625
520, 246.130952381, 625, 875
** Volume elements
*Element, TYPE=C3D10, ELSET=Evolumes
257, 228, 167, 160, 289, 404, 203, 403, 406, 405, 407
258, 228, 342, 167, 350, 409, 408, 404, 410, 386, 411
259, 229, 290, 284, 168, 413, 303, 412, 415, 414, 416
260, 348, 351, 229, 168, 364, 417, 418, 420, 419, 415
261, 228, 160, 221, 289, 403, 421, 264, 406, 407, 422
262, 228, 167, 342, 160, 404, 408, 409, 403, 203, 423
263, 348, 229, 284, 168, 418, 412, 424, 420, 415, 416
264, 281, 160, 220, 282, 427, 425, 426, 324, 428, 429
265, 344, 282, 220, 343, 431, 429, 430, 382, 432, 433
266, 344, 282, 223, 220, 431, 434, 435, 430, 429, 260
267, 221, 160, 342, 220, 421, 423, 436, 263, 425, 437
268, 220, 221, 160, 281, 263, 421, 425, 426, 438, 427
269, 344, 223, 282, 287, 435, 434, 431, 440, 439, 321
270, 342, 160, 343, 220, 423, 441, 385, 437, 425, 433
271, 220, 160, 343, 282, 425, 441, 433, 429, 428, 432
272, 163, 348, 284, 165, 443, 424, 442, 184, 444, 445
273, 348, 224, 288, 226, 448, 446, 447, 449, 245, 450
274, 282, 160, 343, 159, 428, 441, 432, 451, 202, 452
275, 343, 344, 282, 159, 382, 431, 432, 452, 453, 451
276, 348, 349, 288, 224, 367, 454, 447, 448, 455, 446
277, 283, 223, 347, 287, 458, 456, 457, 318, 439, 459
278, 223, 344, 347, 287, 435, 379, 456, 439, 440, 459
279, 287, 344, 347, 162, 440, 379, 459, 461, 460, 462
280, 159, 344, 282, 287, 453, 431, 451, 463, 440, 321
281, 225, 223, 347, 283, 257, 456, 464, 465, 458, 457
282, 287, 347, 283, 162, 459, 457, 318, 461, 462, 466
283, 162, 347, 283, 164, 462, 457, 466, 196, 467, 468
284, 283, 347, 286, 164, 457, 469, 315, 468, 467, 470
285, 284, 348, 288, 226, 424, 447, 306, 471, 449, 450
286, 345, 288, 166, 349, 474, 472, 473, 370, 454, 475
287, 347, 225, 286, 222, 464, 476, 469, 477, 254, 478
288, 162, 287, 344, 159, 461, 440, 460, 199, 463, 453
289, 346, 286, 222, 347, 480, 478, 479, 376, 469, 477
290, 163, 348, 288, 284, 443, 447, 481, 442, 424, 306
291, 166, 285, 288, 345, 482, 309, 472, 473, 483, 474
292, 166, 286, 285, 345, 484, 312, 482, 473, 485, 483
293, 348, 288, 349, 163, 447, 454, 367, 443, 481, 486
294, 288, 349, 227, 224, 454, 487, 488, 446, 455, 248
295, 166, 288, 163, 349, 472, 481, 187, 475, 454, 486
296, 345, 286, 222, 346, 485, 478, 489, 373, 480, 479
297, 227, 285, 286, 345, 491, 312, 490, 492, 483, 485
298, 347, 286, 225, 283, 469, 476, 464, 457, 315, 465
299, 222, 227, 286, 345, 251, 490, 478, 489, 492, 485
300, 166, 161, 286, 346, 190, 493, 484, 495, 494, 480
301, 345, 166, 286, 346, 473, 484, 485, 373, 495, 480
302, 345, 349, 227, 288, 370, 487, 492, 474, 454, 488
303, 347, 346, 286, 164, 376, 480, 469, 467, 496, 470
304, 227, 288, 285, 345, 488, 309, 491, 492, 474, 483
305, 346, 161, 286, 164, 494, 493, 480, 496, 193, 470
306, 229, 284, 226, 348, 412, 471, 242, 418, 424, 449
307, 168, 284, 348, 165, 416, 424, 420, 181, 445, 444
308, 289, 160, 221, 281, 407, 421, 422, 325, 427, 438
309, 221, 342, 160, 228, 436, 423, 421, 264, 409, 403
310, 134, 167, 228, 289, 498, 404, 497, 499, 405, 406
311, 228, 350, 167, 134, 410, 411, 404, 497, 500, 498
312, 229, 109, 290, 168, 502, 501, 413, 415, 503, 414
313, 351, 109, 229, 168, 504, 502, 417, 419, 503, 415
314, 228, 137, 350, 134, 506, 505, 410, 497, 155, 500
315, 350, 135, 167, 134, 508, 507, 411, 500, 152, 498
316, 289, 134, 167, 138, 499, 498, 405, 509, 153, 510
317, 134, 228, 136, 289, 497, 511, 157, 499, 406, 512
318, 109, 113, 290, 168, 128, 513, 501, 503, 514, 414
319, 109, 290, 111, 229, 501, 515, 131, 502, 413, 516
320, 110, 109, 351, 168, 126, 504, 517, 518, 503, 419
321, 112, 109, 229, 351, 130, 502, 519, 520, 504, 417
322, 342, 343, 97, 220, 385, 400, 401, 437, 433, 277
323, 281, 220, 78, 282, 426, 259, 341, 324, 429, 338
324, 221, 342, 97, 220, 436, 401, 280, 263, 437, 277
325, 159, 282, 160, 40, 451, 428, 202, 197, 319, 201
326, 343, 160, 59, 159, 441, 219, 380, 452, 202, 216
327, 345, 222, 93, 346, 489, 272, 392, 373, 479, 393
328, 39, 282, 287, 159, 320, 321, 316, 198, 451, 463
329, 344, 343, 58, 159, 382, 381, 377, 453, 452, 217
330, 220, 223, 77, 282, 260, 256, 258, 429, 434, 339
331, 223, 347, 95, 225, 456, 396, 276, 257, 464, 273
332, 165, 34, 284, 163, 179, 301, 445, 184, 183, 442
333, 222, 93, 227, 345, 272, 269, 251, 489, 392, 492
334, 345, 55, 166, 346, 368, 208, 473, 373, 372, 495
335, 76, 283, 223, 225, 334, 458, 255, 253, 465, 257
336, 343, 59, 160, 342, 380, 219, 441, 385, 384, 423
337, 95, 344, 347, 223, 397, 379, 396, 276, 435, 456
338, 347, 344, 57, 162, 379, 378, 374, 462, 460, 215
339, 38, 162, 283, 164, 195, 466, 313, 191, 196, 468
340, 162, 57, 347, 164, 215, 374, 462, 196, 212, 467
341, 224, 72, 288, 226, 243, 329, 446, 245, 241, 450
342, 91, 226, 224, 348, 265, 245, 268, 388, 449, 448
343, 53, 348, 163, 165, 362, 443, 207, 204, 444, 184
344, 288, 284, 34, 163, 306, 301, 305, 481, 442, 183
345, 282, 223, 77, 287, 434, 256, 339, 321, 439, 336
346, 76, 223, 283, 287, 255, 458, 334, 337, 439, 318
347, 38, 283, 162, 287, 313, 466, 195, 317, 318, 461
348, 72, 284, 288, 226, 326, 306, 329, 241, 471, 450
349, 348, 224, 91, 349, 448, 268, 388, 367, 455, 389
350, 55, 161, 166, 346, 211, 190, 208, 372, 494, 495
351, 227, 286, 74, 222, 490, 333, 247, 251, 478, 249
352, 53, 163, 348, 349, 207, 443, 362, 366, 486, 367
353, 36, 286, 166, 161, 311, 484, 185, 189, 493, 190
354, 74, 285, 286, 227, 330, 312, 333, 247, 491, 490
355, 94, 347, 222, 225, 395, 477, 271, 274, 464, 254
356, 283, 286, 37, 164, 315, 310, 314, 468, 470, 192
357, 344, 96, 343, 220, 398, 399, 382, 430, 278, 433
358, 36, 166, 286, 285, 185, 484, 311, 307, 482, 312
359, 73, 288, 285, 227, 328, 309, 331, 246, 488, 491
360, 345, 166, 54, 349, 473, 209, 369, 370, 475, 365
361, 92, 227, 349, 224, 270, 487, 390, 267, 248, 455
362, 347, 222, 346, 94, 477, 479, 376, 395, 271, 394
363, 54, 166, 163, 349, 209, 187, 206, 365, 475, 486
364, 346, 56, 161, 164, 371, 210, 494, 496, 213, 193
365, 286, 161, 37, 164, 493, 188, 310, 470, 193, 192
366, 227, 73, 288, 224, 246, 328, 488, 248, 244, 446
367, 78, 221, 220, 281, 261, 263, 259, 341, 438, 426
368, 282, 281, 160, 40, 324, 427, 428, 319, 323, 201
369, 163, 35, 288, 166, 182, 304, 481, 187, 186, 472
370, 223, 96, 344, 220, 275, 398, 435, 260, 278, 430
371, 162, 39, 287, 159, 194, 316, 461, 199, 198, 463
372, 347, 56, 346, 164, 375, 371, 376, 467, 213, 496
373, 92, 349, 227, 345, 390, 487, 270, 391, 370, 492
374, 285, 288, 35, 166, 309, 304, 308, 482, 472, 186
375, 225, 286, 222, 75, 476, 478, 254, 252, 332, 250
376, 75, 225, 286, 283, 252, 476, 332, 335, 465, 315
377, 162, 344, 58, 159, 460, 377, 214, 199, 453, 217
378, 228, 221, 79, 289, 264, 262, 239, 406, 422, 300
379, 167, 41, 160, 289, 178, 200, 203, 405, 298, 407
380, 342, 60, 167, 350, 383, 176, 408, 386, 359, 411
381, 71, 290, 284, 229, 295, 303, 327, 234, 413, 412
382, 52, 351, 348, 168, 354, 364, 363, 171, 419, 420
383, 351, 229, 90, 348, 417, 232, 356, 364, 418, 387
384, 284, 290, 33, 168, 303, 293, 302, 416, 414, 173
385, 98, 350, 342, 228, 361, 386, 402, 237, 410, 409
386, 226, 71, 284, 229, 240, 327, 471, 242, 234, 412
387, 90, 229, 226, 348, 232, 242, 266, 387, 418, 449
388, 168, 33, 284, 165, 173, 302, 416, 181, 180, 445
389, 168, 348, 52, 165, 420, 363, 171, 181, 444, 205
390, 289, 221, 79, 281, 422, 262, 300, 325, 438, 340
391, 289, 41, 160, 281, 298, 200, 407, 325, 322, 427
392, 167, 160, 60, 342, 203, 218, 176, 408, 423, 383
393, 221, 98, 342, 228, 279, 402, 436, 264, 237, 409
394, 167, 21, 134, 135, 174, 151, 498, 507, 139, 152
395, 289, 134, 30, 136, 499, 158, 296, 512, 157, 150
396, 110, 9, 109, 168, 114, 127, 126, 518, 169, 503
397, 138, 134, 30, 289, 153, 158, 144, 509, 499, 296
398, 138, 21, 134, 167, 143, 151, 153, 510, 174, 498
399, 111, 109, 18, 290, 131, 133, 125, 515, 501, 291
400, 168, 9, 109, 113, 169, 127, 503, 514, 117, 128
401, 290, 109, 18, 113, 501, 133, 291, 513, 128, 119
402, 27, 228, 136, 134, 235, 511, 148, 156, 497, 157
403, 137, 24, 350, 134, 145, 357, 505, 155, 154, 500
404, 350, 24, 135, 134, 357, 141, 508, 500, 154, 152
405, 27, 137, 228, 134, 147, 506, 235, 156, 155, 497
406, 229, 111, 109, 15, 516, 131, 502, 231, 123, 132
407, 15, 109, 229, 112, 132, 502, 231, 122, 130, 519
408, 351, 12, 109, 110, 353, 129, 504, 517, 116, 126
409, 112, 12, 109, 351, 120, 129, 130, 520, 353, 504
410, 8, 136, 228, 289, 149, 511, 238, 299, 512, 406
411, 5, 135, 167, 350, 140, 507, 175, 358, 508, 411
412, 7, 137, 350, 228, 146, 505, 360, 236, 506, 410
413, 138, 167, 289, 6, 510, 405, 509, 142, 177, 297
414, 111, 290, 4, 229, 515, 294, 124, 516, 413, 233
415, 112, 229, 3, 351, 519, 230, 121, 520, 417, 355
416, 290, 113, 2, 168, 513, 118, 292, 414, 514, 172
417, 1, 110, 351, 168, 115, 517, 352, 170, 518, 419
418, 137, 350, 24, 7, 505, 357, 145, 146, 360, 26
419, 138, 289, 30, 6, 509, 296, 144, 142, 297, 31
420, 228, 7, 137, 27, 236, 146, 506, 235, 29, 147
421, 30, 136, 8, 289, 150, 149, 32, 296, 512, 299
422, 24, 135, 5, 350, 141, 140, 25, 357, 508, 358
423, 135, 167, 21, 5, 507, 174, 139, 140, 175, 23
424, 27, 136, 228, 8, 148, 511, 235, 28, 149, 238
425, 138, 21, 167, 6, 143, 174, 510, 142, 22, 177
426, 229, 4, 111, 15, 233, 124, 516, 231, 16, 123
427, 168, 113, 2, 9, 514, 118, 172, 169, 117, 10
428, 3, 15, 229, 112, 17, 231, 230, 121, 122, 519
429, 290, 2, 113, 18, 292, 118, 513, 291, 19, 119
430, 4, 18, 290, 111, 20, 291, 294, 124, 125, 515
431, 110, 351, 12, 1, 517, 353, 116, 115, 352, 13
432, 168, 1, 110, 9, 170, 115, 518, 169, 11, 114
433, 112, 3, 12, 351, 121, 14, 120, 520, 355, 353
434, 8, 228, 79, 289, 238, 239, 89, 299, 406, 300
435, 98, 7, 350, 228, 108, 360, 361, 237, 236, 410
436, 289, 167, 41, 6, 405, 178, 298, 297, 177, 51
437, 5, 167, 60, 350, 175, 176, 70, 358, 411, 359
438, 290, 2, 33, 168, 292, 42, 293, 414, 172, 173
439, 4, 290, 71, 229, 294, 295, 80, 233, 413, 234
440, 52, 1, 351, 168, 61, 352, 354, 171, 170, 419
441, 3, 229, 90, 351, 230, 232, 99, 355, 417, 356
442, 78, 220, 77, 282, 259, 258, 87, 338, 429, 339
443, 343, 96, 97, 220, 399, 106, 400, 433, 278, 277
444, 159, 39, 282, 40, 198, 320, 451, 197, 49, 319
445, 343, 59, 58, 159, 380, 68, 381, 452, 216, 217
446, 92, 91, 224, 349, 101, 268, 267, 390, 389, 455
447, 52, 348, 53, 165, 363, 362, 62, 205, 444, 204
448, 94, 95, 347, 225, 104, 396, 395, 274, 273, 464
449, 95, 96, 344, 223, 105, 398, 397, 276, 275, 435
450, 347, 57, 56, 164, 374, 66, 375, 467, 212, 213
451, 284, 33, 34, 165, 302, 43, 301, 445, 180, 179
452, 91, 90, 226, 348, 100, 266, 265, 388, 387, 449
453, 72, 71, 284, 226, 81, 327, 326, 241, 240, 471
454, 72, 288, 73, 224, 329, 328, 82, 243, 446, 244
455, 344, 58, 57, 162, 377, 67, 378, 460, 214, 215
456, 54, 163, 53, 349, 206, 207, 63, 365, 486, 366
457, 76, 77, 223, 287, 86, 256, 255, 337, 336, 439
458, 288, 34, 35, 163, 305, 44, 304, 481, 183, 182
459, 161, 37, 36, 286, 188, 46, 189, 493, 310, 311
460, 346, 222, 93, 94, 479, 272, 393, 394, 271, 103
461, 74, 73, 285, 227, 83, 331, 330, 247, 246, 491
462, 55, 56, 161, 346, 65, 210, 211, 372, 371, 494
463, 92, 227, 93, 345, 270, 269, 102, 391, 492, 392
464, 38, 283, 37, 164, 313, 314, 47, 191, 468, 192
465, 285, 35, 36, 166, 308, 45, 307, 482, 186, 185
466, 39, 287, 38, 162, 316, 317, 48, 194, 461, 195
467, 55, 166, 54, 345, 208, 209, 64, 368, 473, 369
468, 222, 286, 74, 75, 478, 333, 249, 250, 332, 84
469, 76, 225, 75, 283, 253, 252, 85, 334, 465, 335
470, 281, 41, 160, 40, 322, 200, 427, 323, 50, 201
471, 59, 60, 160, 342, 69, 218, 219, 384, 383, 423
472, 78, 79, 221, 281, 88, 262, 261, 341, 340, 438
473, 98, 342, 97, 221, 402, 401, 107, 279, 436, 280
** Define element set Eall
*ELSET, ELSET=Eall
Evolumes
***********************************************************
** Element sets for materials and FEM element type (solid, shell, beam, fluid)
** written by write_element_sets_material_and_femelement_type function
*ELSET,ELSET=SolidMaterialSolid
Evolumes
***********************************************************
** constraints fixed node sets
** written by write_node_sets_constraints_fixed function
** FemConstraintFixed
*NSET,NSET=FemConstraintFixed
1,
2,
3,
4,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
109,
110,
111,
112,
113,
114,
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
***********************************************************
** Materials
** written by write_materials function
** Young's modulus unit is MPa = N/mm2
** FreeCAD material name: CalculiX-Steel
** SolidMaterial
*MATERIAL, NAME=SolidMaterial
*ELASTIC
210000, 0.300
***********************************************************
** Sections
** written by write_femelementsets function
*SOLID SECTION, ELSET=SolidMaterialSolid, MATERIAL=SolidMaterial
***********************************************************
** At least one step is needed to run an CalculiX analysis of FreeCAD
** written by write_step_begin function
*STEP
*STATIC
***********************************************************
** Fixed Constraints
** written by write_constraints_fixed function
** FemConstraintFixed
*BOUNDARY
FemConstraintFixed,1
FemConstraintFixed,2
FemConstraintFixed,3
***********************************************************
** constraints force node loads
** written by write_constraints_force function
*CLOAD
** FemConstraintForce
** node loads on shape: Box:Face2
5,3,-0.0000000000000E+00
6,3,-0.0000000000000E+00
7,3,-0.0000000000000E+00
8,3,-0.0000000000000E+00
21,3,-0.0000000000000E+00
22,3,-1.8750000000000E+05
23,3,-1.8750000000000E+05
24,3,-0.0000000000000E+00
25,3,-1.8750000000000E+05
26,3,-1.8750000000000E+05
27,3,-0.0000000000000E+00
28,3,-1.8750000000000E+05
29,3,-1.8750000000000E+05
30,3,-0.0000000000000E+00
31,3,-1.8750000000000E+05
32,3,-1.8750000000000E+05
134,3,-0.0000000000000E+00
135,3,-0.0000000000000E+00
136,3,-0.0000000000000E+00
137,3,-0.0000000000000E+00
138,3,-0.0000000000000E+00
139,3,-3.7500000000000E+05
140,3,-3.7500000000000E+05
141,3,-3.7500000000000E+05
142,3,-3.7500000000000E+05
143,3,-3.7500000000000E+05
144,3,-3.7500000000000E+05
145,3,-3.7500000000000E+05
146,3,-3.7500000000000E+05
147,3,-3.7500000000000E+05
148,3,-3.7500000000000E+05
149,3,-3.7500000000000E+05
150,3,-3.7500000000000E+05
151,3,-3.7500000000000E+05
152,3,-3.7500000000000E+05
153,3,-3.7500000000000E+05
154,3,-3.7500000000000E+05
155,3,-3.7500000000000E+05
156,3,-3.7500000000000E+05
157,3,-3.7500000000000E+05
158,3,-3.7500000000000E+05
***********************************************************
** Outputs --> frd file
** written by write_outputs_types function
*NODE FILE
U
*EL FILE
S, E
** outputs --> dat file
** reaction forces for Constraint fixed
*NODE PRINT, NSET=FemConstraintFixed, TOTALS=ONLY
RF
***********************************************************
** written by write_step_end function
*END STEP
***********************************************************
** CalculiX Input file
** written by write_footer function
** written by --> FreeCAD 0.19.21782 (Git)
** written on --> Mon Jun 29 22:09:12 2020
** file name --> FemCalculixCantilever3D_newSolver.FCStd
** analysis name --> Analysis
**
**
**
** Units
**
** Geometry (mesh data) --> mm
** Materials (Young's modulus) --> N/mm2 = MPa
** Loads (nodal loads) --> N
**

View File

@@ -0,0 +1,2 @@
SUMMARY OF JOB INFORMATION
STEP INC ATT ITRS TOT TIME STEP TIME INC TIME

View File

@@ -172,7 +172,7 @@ SET(FemSolverElmerEquations_SRCS
femsolver/elmer/equations/elasticity.py femsolver/elmer/equations/elasticity.py
femsolver/elmer/equations/equation.py femsolver/elmer/equations/equation.py
femsolver/elmer/equations/flow.py femsolver/elmer/equations/flow.py
femsolver/elmer/equations/fluxsolver.py femsolver/elmer/equations/flux.py
femsolver/elmer/equations/heat.py femsolver/elmer/equations/heat.py
femsolver/elmer/equations/linear.py femsolver/elmer/equations/linear.py
femsolver/elmer/equations/nonlinear.py femsolver/elmer/equations/nonlinear.py

View File

@@ -39,7 +39,7 @@
<file>icons/FEM_EquationElectricforce.svg</file> <file>icons/FEM_EquationElectricforce.svg</file>
<file>icons/FEM_EquationElectrostatic.svg</file> <file>icons/FEM_EquationElectrostatic.svg</file>
<file>icons/FEM_EquationFlow.svg</file> <file>icons/FEM_EquationFlow.svg</file>
<file>icons/FEM_EquationFluxsolver.svg</file> <file>icons/FEM_EquationFlux.svg</file>
<file>icons/FEM_EquationHeat.svg</file> <file>icons/FEM_EquationHeat.svg</file>
<!-- gui command icons: meshes --> <!-- gui command icons: meshes -->

View File

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@@ -178,7 +178,7 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
<< "FEM_EquationElasticity" << "FEM_EquationElasticity"
<< "FEM_EquationElectrostatic" << "FEM_EquationElectrostatic"
<< "FEM_EquationFlow" << "FEM_EquationFlow"
<< "FEM_EquationFluxsolver" << "FEM_EquationFlux"
<< "FEM_EquationElectricforce" << "FEM_EquationElectricforce"
<< "FEM_EquationHeat" << "FEM_EquationHeat"
<< "Separator" << "Separator"
@@ -339,7 +339,7 @@ Gui::MenuItem* Workbench::setupMenuBar() const
<< "FEM_EquationElasticity" << "FEM_EquationElasticity"
<< "FEM_EquationElectrostatic" << "FEM_EquationElectrostatic"
<< "FEM_EquationFlow" << "FEM_EquationFlow"
<< "FEM_EquationFluxsolver" << "FEM_EquationFlux"
<< "FEM_EquationElectricforce" << "FEM_EquationElectricforce"
<< "FEM_EquationHeat" << "FEM_EquationHeat"
<< "Separator" << "Separator"

View File

@@ -719,15 +719,15 @@ def makeEquationFlow(
return obj return obj
def makeEquationFluxsolver( def makeEquationFlux(
doc, doc,
base_solver=None, base_solver=None,
name="Fluxsolver" name="Flux"
): ):
"""makeEquationFluxsolver(document, [base_solver], [name]): """makeEquationFlux(document, [base_solver], [name]):
creates a FEM fluxsolver equation for a solver""" creates a FEM flux equation for a solver"""
from femsolver.elmer.equations import fluxsolver from femsolver.elmer.equations import flux
obj = fluxsolver.create(doc, name) obj = flux.create(doc, name)
if base_solver: if base_solver:
base_solver.addObject(obj) base_solver.addObject(obj)
return obj return obj

View File

@@ -307,13 +307,13 @@ class _EquationFlow(CommandManager):
self.do_activated = "add_obj_on_gui_selobj_noset_edit" self.do_activated = "add_obj_on_gui_selobj_noset_edit"
class _EquationFluxsolver(CommandManager): class _EquationFlux(CommandManager):
"The FEM_EquationFluxsolver command definition" "The FEM_EquationFlux command definition"
def __init__(self): def __init__(self):
super(_EquationFluxsolver, self).__init__() super(_EquationFlux, self).__init__()
self.menuetext = "Fluxsolver equation" self.menuetext = "Flux equation"
self.tooltip = "Creates a FEM equation for fluxsolver" self.tooltip = "Creates a FEM equation for flux"
self.is_active = "with_solver_elmer" self.is_active = "with_solver_elmer"
self.do_activated = "add_obj_on_gui_selobj_noset_edit" self.do_activated = "add_obj_on_gui_selobj_noset_edit"
@@ -861,8 +861,8 @@ FreeCADGui.addCommand(
_EquationFlow() _EquationFlow()
) )
FreeCADGui.addCommand( FreeCADGui.addCommand(
"FEM_EquationFluxsolver", "FEM_EquationFlux",
_EquationFluxsolver() _EquationFlux()
) )
FreeCADGui.addCommand( FreeCADGui.addCommand(
"FEM_EquationElectricforce", "FEM_EquationElectricforce",

View File

@@ -385,6 +385,10 @@ class FemMigrateGui(object):
possible entries in the old files: possible entries in the old files:
(the class name in the old file does not matter, we ever only had one class per module) (the class name in the old file does not matter, we ever only had one class per module)
further renaming objects
module="femsolver.elmer.equations.fluxsolver"
see App migrate because object class and viewprovider class are in the same module
fourth big moving fourth big moving
renaming class and module names in femobjects renaming class and module names in femobjects
TODO add link to commit before the first commit TODO add link to commit before the first commit

View File

@@ -1,5 +1,6 @@
# *************************************************************************** # ***************************************************************************
# * Copyright (c) 2017 Markus Hovorka <m.hovorka@live.de> * # * Copyright (c) 2017 Markus Hovorka <m.hovorka@live.de> *
# * Copyright (c) 2020 Bernd Hahnebach <bernd@bimstatik.org> *
# * * # * *
# * This file is part of the FreeCAD CAx development system. * # * This file is part of the FreeCAD CAx development system. *
# * * # * *
@@ -21,7 +22,7 @@
# * * # * *
# *************************************************************************** # ***************************************************************************
__title__ = "FreeCAD FEM solver Elmer equation object Fluxsolver" __title__ = "FreeCAD FEM solver Elmer equation object Flux"
__author__ = "Markus Hovorka" __author__ = "Markus Hovorka"
__url__ = "http://www.freecadweb.org" __url__ = "http://www.freecadweb.org"
@@ -33,49 +34,49 @@ from ... import equationbase
from . import linear from . import linear
def create(doc, name="Fluxsolver"): def create(doc, name="Flux"):
return femutils.createObject( return femutils.createObject(
doc, name, Proxy, ViewProxy) doc, name, Proxy, ViewProxy)
class Proxy(linear.Proxy, equationbase.FluxsolverProxy): class Proxy(linear.Proxy, equationbase.FluxProxy):
Type = "Fem::EquationElmerFluxsolver" Type = "Fem::EquationElmerFlux"
def __init__(self, obj): def __init__(self, obj):
super(Proxy, self).__init__(obj) super(Proxy, self).__init__(obj)
obj.addProperty( obj.addProperty(
"App::PropertyBool", "CalculateFlux", "App::PropertyBool", "CalculateFlux",
"Fluxsolver", "Select type of solver for linear system") "Flux", "Select type of solver for linear system")
obj.addProperty( obj.addProperty(
"App::PropertyString", "FluxVariable", "App::PropertyString", "FluxVariable",
"Fluxsolver", "Insert variable name for flux calculation") "Flux", "Insert variable name for flux calculation")
""" """
#obj.addProperty( #obj.addProperty(
#"App::PropertyBool", "CalculateFluxAbs", #"App::PropertyBool", "CalculateFluxAbs",
#"Fluxsolver", "Select calculation of abs of flux") #"Flux", "Select calculation of abs of flux")
#obj.addProperty( #obj.addProperty(
#"App::PropertyBool", "CalculateFluxMagnitude", #"App::PropertyBool", "CalculateFluxMagnitude",
#"Fluxsolver", "Select calculation of magnitude of flux") #"Flux", "Select calculation of magnitude of flux")
""" """
obj.addProperty( obj.addProperty(
"App::PropertyBool", "CalculateGrad", "App::PropertyBool", "CalculateGrad",
"Fluxsolver", "Select calculation of gradient") "Flux", "Select calculation of gradient")
""" """
#obj.addProperty( #obj.addProperty(
#"App::PropertyBool", "CalculateGradAbs", #"App::PropertyBool", "CalculateGradAbs",
#"Fluxsolver", "Select calculation of abs of gradient") #"Flux", "Select calculation of abs of gradient")
#obj.addProperty( #obj.addProperty(
#"App::PropertyBool", "CalculateGradMagnitude", #"App::PropertyBool", "CalculateGradMagnitude",
#"Fluxsolver", "Select calculation of magnitude of gradient") #"Flux", "Select calculation of magnitude of gradient")
#obj.addProperty( #obj.addProperty(
#"App::PropertyBool", "EnforcePositiveMagnitude", #"App::PropertyBool", "EnforcePositiveMagnitude",
#"Fluxsolver", "Select calculation of positive magnitude") #"Flux", "Select calculation of positive magnitude")
""" """
obj.Priority = 5 obj.Priority = 5
class ViewProxy(linear.ViewProxy, equationbase.FluxsolverViewProxy): class ViewProxy(linear.ViewProxy, equationbase.FluxViewProxy):
pass pass
## @} ## @}

View File

@@ -32,7 +32,7 @@ from . import tasks
from .equations import elasticity from .equations import elasticity
from .equations import electrostatic from .equations import electrostatic
from .equations import flow from .equations import flow
from .equations import fluxsolver from .equations import flux
from .equations import electricforce from .equations import electricforce
from .equations import heat from .equations import heat
from .. import run from .. import run
@@ -54,7 +54,7 @@ class Proxy(solverbase.Proxy):
"Heat": heat, "Heat": heat,
"Elasticity": elasticity, "Elasticity": elasticity,
"Electrostatic": electrostatic, "Electrostatic": electrostatic,
"Fluxsolver": fluxsolver, "Flux": flux,
"Electricforce": electricforce, "Electricforce": electricforce,
"Flow": flow, "Flow": flow,
} }

View File

@@ -1,5 +1,6 @@
# *************************************************************************** # ***************************************************************************
# * Copyright (c) 2017 Markus Hovorka <m.hovorka@live.de> * # * Copyright (c) 2017 Markus Hovorka <m.hovorka@live.de> *
# * Copyright (c) 2020 Bernd Hahnebach <bernd@bimstatik.org> *
# * * # * *
# * This file is part of the FreeCAD CAx development system. * # * This file is part of the FreeCAD CAx development system. *
# * * # * *
@@ -144,7 +145,7 @@ class Writer(object):
self._handleHeat() self._handleHeat()
self._handleElasticity() self._handleElasticity()
self._handleElectrostatic() self._handleElectrostatic()
self._handleFluxsolver() self._handleFlux()
self._handleElectricforce() self._handleElectricforce()
self._handleFlow() self._handleFlow()
self._addOutputSolver() self._addOutputSolver()
@@ -435,19 +436,19 @@ class Writer(object):
self._boundary(name, "Capacitance Body", obj.CapacitanceBody) self._boundary(name, "Capacitance Body", obj.CapacitanceBody)
self._handled(obj) self._handled(obj)
def _handleFluxsolver(self): def _handleFlux(self):
activeIn = [] activeIn = []
for equation in self.solver.Group: for equation in self.solver.Group:
if femutils.is_of_type(equation, "Fem::EquationElmerFluxsolver"): if femutils.is_of_type(equation, "Fem::EquationElmerFlux"):
if equation.References: if equation.References:
activeIn = equation.References[0][1] activeIn = equation.References[0][1]
else: else:
activeIn = self._getAllBodies() activeIn = self._getAllBodies()
solverSection = self._getFluxsolverSolver(equation) solverSection = self._getFlux(equation)
for body in activeIn: for body in activeIn:
self._addSolver(body, solverSection) self._addSolver(body, solverSection)
def _getFluxsolverSolver(self, equation): def _getFlux(self, equation):
s = self._createLinearSolver(equation) s = self._createLinearSolver(equation)
s["Equation"] = "Flux Solver" # equation.Name s["Equation"] = "Flux Solver" # equation.Name
s["Procedure"] = sifio.FileAttr("FluxSolver/FluxSolver") s["Procedure"] = sifio.FileAttr("FluxSolver/FluxSolver")

View File

@@ -99,13 +99,13 @@ class ElectrostaticProxy(BaseProxy):
pass pass
class FluxsolverViewProxy(BaseViewProxy): class FluxViewProxy(BaseViewProxy):
def getIcon(self): def getIcon(self):
return ":/icons/FEM_EquationFluxsolver.svg" return ":/icons/FEM_EquationFlux.svg"
class FluxsolverProxy(BaseProxy): class FluxProxy(BaseProxy):
pass pass

View File

@@ -340,8 +340,8 @@ class TestObjectType(unittest.TestCase):
type_of_obj(ObjectsFem.makeEquationFlow(doc, solverelmer)) type_of_obj(ObjectsFem.makeEquationFlow(doc, solverelmer))
) )
self.assertEqual( self.assertEqual(
"Fem::EquationElmerFluxsolver", "Fem::EquationElmerFlux",
type_of_obj(ObjectsFem.makeEquationFluxsolver(doc, solverelmer)) type_of_obj(ObjectsFem.makeEquationFlux(doc, solverelmer))
) )
self.assertEqual( self.assertEqual(
"Fem::EquationElmerHeat", "Fem::EquationElmerHeat",
@@ -551,8 +551,8 @@ class TestObjectType(unittest.TestCase):
"Fem::EquationElmerFlow" "Fem::EquationElmerFlow"
)) ))
self.assertTrue(is_of_type( self.assertTrue(is_of_type(
ObjectsFem.makeEquationFluxsolver(doc, solverelmer), ObjectsFem.makeEquationFlux(doc, solverelmer),
"Fem::EquationElmerFluxsolver" "Fem::EquationElmerFlux"
)) ))
self.assertTrue(is_of_type( self.assertTrue(is_of_type(
ObjectsFem.makeEquationHeat(doc, solverelmer), ObjectsFem.makeEquationHeat(doc, solverelmer),
@@ -1274,8 +1274,8 @@ class TestObjectType(unittest.TestCase):
"Fem::EquationElmerFlow" "Fem::EquationElmerFlow"
)) ))
# FemEquationElmerFluxsolver # FemEquationElmerFlux
equation_flux = ObjectsFem.makeEquationFluxsolver(doc, solver_elmer) equation_flux = ObjectsFem.makeEquationFlux(doc, solver_elmer)
self.assertTrue(is_derived_from( self.assertTrue(is_derived_from(
equation_flux, equation_flux,
"App::DocumentObject" "App::DocumentObject"
@@ -1286,7 +1286,7 @@ class TestObjectType(unittest.TestCase):
)) ))
self.assertTrue(is_derived_from( self.assertTrue(is_derived_from(
equation_flux, equation_flux,
"Fem::EquationElmerFluxsolver" "Fem::EquationElmerFlux"
)) ))
# FemEquationElmerHeat # FemEquationElmerHeat
@@ -1551,7 +1551,7 @@ class TestObjectType(unittest.TestCase):
).isDerivedFrom("App::FeaturePython") ).isDerivedFrom("App::FeaturePython")
) )
self.assertTrue( self.assertTrue(
ObjectsFem.makeEquationFluxsolver( ObjectsFem.makeEquationFlux(
doc, doc,
solverelmer solverelmer
).isDerivedFrom("App::FeaturePython") ).isDerivedFrom("App::FeaturePython")
@@ -1635,7 +1635,7 @@ def create_all_fem_objects_doc(
ObjectsFem.makeEquationElectricforce(doc, sol) ObjectsFem.makeEquationElectricforce(doc, sol)
ObjectsFem.makeEquationElectrostatic(doc, sol) ObjectsFem.makeEquationElectrostatic(doc, sol)
ObjectsFem.makeEquationFlow(doc, sol) ObjectsFem.makeEquationFlow(doc, sol)
ObjectsFem.makeEquationFluxsolver(doc, sol) ObjectsFem.makeEquationFlux(doc, sol)
ObjectsFem.makeEquationHeat(doc, sol) ObjectsFem.makeEquationHeat(doc, sol)
doc.recompute() doc.recompute()

View File

@@ -118,6 +118,13 @@ class TestObjectOpen(unittest.TestCase):
# FeaturePythons objects # FeaturePythons objects
self.compare_feature_pythons_class_app(self.document) self.compare_feature_pythons_class_app(self.document)
# standard name changed
from femsolver.elmer.equations.flux import Proxy
self.assertEqual(
Proxy,
self.document.Flux.Proxy.__class__
)
# ******************************************************************************************** # ********************************************************************************************
def test_femobjects_open_de9b3fb438( def test_femobjects_open_de9b3fb438(
self self
@@ -139,6 +146,13 @@ class TestObjectOpen(unittest.TestCase):
# FeaturePythons objects # FeaturePythons objects
self.compare_feature_pythons_class_app(self.document) self.compare_feature_pythons_class_app(self.document)
# standard name changed
from femsolver.elmer.equations.flux import Proxy
self.assertEqual(
Proxy,
self.document.Fluxsolver.Proxy.__class__
)
# ******************************************************************************************** # ********************************************************************************************
def compare_cpp_objs( def compare_cpp_objs(
self, self,
@@ -330,12 +344,6 @@ class TestObjectOpen(unittest.TestCase):
doc.Flow.Proxy.__class__ doc.Flow.Proxy.__class__
) )
from femsolver.elmer.equations.fluxsolver import Proxy
self.assertEqual(
Proxy,
doc.Fluxsolver.Proxy.__class__
)
from femsolver.elmer.equations.heat import Proxy from femsolver.elmer.equations.heat import Proxy
self.assertEqual( self.assertEqual(
Proxy, Proxy,

View File

@@ -115,6 +115,13 @@ class TestObjectOpen(unittest.TestCase):
# FeaturePythons view provider # FeaturePythons view provider
self.compare_feature_pythons_class_gui(self.document) self.compare_feature_pythons_class_gui(self.document)
# standard name changed
from femsolver.elmer.equations.flux import ViewProxy
self.assertEqual(
ViewProxy,
self.document.Flux.ViewObject.Proxy.__class__
)
# ******************************************************************************************** # ********************************************************************************************
def test_femobjects_open_de9b3fb438( def test_femobjects_open_de9b3fb438(
self self
@@ -134,6 +141,13 @@ class TestObjectOpen(unittest.TestCase):
# FeaturePythons view provider # FeaturePythons view provider
self.compare_feature_pythons_class_gui(self.document) self.compare_feature_pythons_class_gui(self.document)
# standard name changed
from femsolver.elmer.equations.flux import ViewProxy
self.assertEqual(
ViewProxy,
self.document.Fluxsolver.ViewObject.Proxy.__class__
)
# ******************************************************************************************** # ********************************************************************************************
def compare_feature_pythons_class_gui( def compare_feature_pythons_class_gui(
self, self,
@@ -305,12 +319,6 @@ class TestObjectOpen(unittest.TestCase):
doc.Flow.ViewObject.Proxy.__class__ doc.Flow.ViewObject.Proxy.__class__
) )
from femsolver.elmer.equations.fluxsolver import ViewProxy
self.assertEqual(
ViewProxy,
doc.Fluxsolver.ViewObject.Proxy.__class__
)
from femsolver.elmer.equations.heat import ViewProxy from femsolver.elmer.equations.heat import ViewProxy
self.assertEqual( self.assertEqual(
ViewProxy, ViewProxy,

View File

@@ -37,6 +37,11 @@ class FemMigrateApp(object):
def find_module(self, fullname, path): def find_module(self, fullname, path):
if fullname == "femsolver.elmer.equations":
return self
if fullname == "femsolver.elmer.equations.fluxsolver":
return self
if fullname == "femobjects": if fullname == "femobjects":
return self return self
if fullname == "femobjects._FemConstraintBodyHeatSource": if fullname == "femobjects._FemConstraintBodyHeatSource":
@@ -174,6 +179,14 @@ class FemMigrateApp(object):
def load_module(self, module): def load_module(self, module):
if module.__name__ == "femsolver.elmer.equations":
return self
if module.__name__ == "femsolver.elmer.equations.fluxsolver":
import femsolver.elmer.equations.flux
module.Proxy = femsolver.elmer.equations.flux.Proxy
if FreeCAD.GuiUp:
module.ViewProxy = femsolver.elmer.equations.flux.ViewProxy
if module.__name__ == "femobjects": if module.__name__ == "femobjects":
module.__path__ = "femobjects" module.__path__ = "femobjects"
if module.__name__ == "femobjects._FemConstraintBodyHeatSource": if module.__name__ == "femobjects._FemConstraintBodyHeatSource":
@@ -388,6 +401,11 @@ class FemMigrateApp(object):
possible entries in the old files: possible entries in the old files:
(the class name in the old file does not matter, we ever only had one class per module) (the class name in the old file does not matter, we ever only had one class per module)
further renaming objects
module="femsolver.elmer.equations.fluxsolver"
in this modules object class and viewprovider class are in same module
fourth big moving fourth big moving
renaming class and module names in femobjects renaming class and module names in femobjects
TODO add link to commit before the first commit TODO add link to commit before the first commit