forked from parmes/solfec-1.0
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
123 lines (122 loc) · 7.68 KB
/
TODO
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Energy balance is not robust
-----------------------------------------
Merit function for convergence control
needs more thought
--------------------------------------------------
Compute per-block merit functions and sort blocks
according to their values. During Gauss-Seidel
iterations process blocks in the descending order
of such ordering.
(tested and wasn't great at all)
---------------------------------------------------------
Test whether inertia scaling by density works correctly
-------------------------------------------------------------
add void *mat; to TRISURF and inherit material poinetrs
from convices when intersecting; use them when integrating
over material properties
--------------------------------------------------------
Consider replacing 4-coord cvx->pla with 6-coord one
(hence no CONVEX_Planes routine would be needed)
-------------------------------------------------------------
Add menu "material" between "kinds of" and "results". Within
this menu add friction, cohesio, spring, dahspot, young,
poisson, etc. Render as fields or coloured constraint.
-------------------------------------------------------------
Rendering of contact states
--------------------------------------------------------
Optimize W assembly in parallel by using left product
for blocks with dia->adjext != NULL and right product
for the remaining (internal) nodes.
-----------------------------------------------------------------------
Test PBF file size limitation fixup
-------------------------------------------------------
Data compression/decompression in COMALL and others ?
-----------------------------------------------------------
Reduce parallel balancing communication during fully explicit runs
(e.g. external constraints sent only from children to parents)
---------------------------------------------------------------
Include (at least in the viewer mode) possibility of dumping
into a separate sub-directory of a subset of results
-------------------------------------------------------------------
Gap computation is not robust. Implicitly integrated core at smaller time steps
reports unphysical penetration => this is due to numerical instability of gap
computations for smaller motion increments.
(this has been now improved; needs to be checked again)
-------------------------------------------------------------------------------
Optimize WR product by summing up repeated off-diagonal W(i,j) blocks for two-point two-body constraints
--------------------------------------------------------------------------
Implement FULL body migration (as it used to be): let bodies be stored only where
they are needed at a time (rather than on all processors as now); make the current way
of storing bodies optional - indicate that it saves communication time and pays off
in case of not too large models
--------------------------------------------------------------------------
Sort out volumetric integration order in FEM module
--------------------------------------------------------------------------------------
OPTIMIZE:
a) sending constrains with fixed bases (e.g. FIXPNT, do not send the base)
b) assembling W parts for constraints with fxied bases and points (e.g. FIXPNT)
c) full domain load balancing only every N steps (communication)
------------------------------------------------------------------------------------------------------------
Balancing of FEM bodies - decrease constraint weight (too many DOFs)
-----------------------------------------------------------------------
Optimize stress plotting (batch calculation for a set of nodes)
----------------------------------------------------------------------------------
Implement configuration update: q(t+h3/2) = q(t+h/2) + h * u(t+h). This will allow
to minimise communication in the domain update code.
--------------------------------------------------------------------------------------
Add ANALAYSIS kind and body->DAMPING to MBFCP format
--------------------------------------------------------------------------------------
Swap epsilon and meritval arguments in GAUSS_SEIDEL_SOLVER
--------------------------------------------------------------------------------------
Consider a separate linear solve at the end for all equality constraints.
This will simplify the penalty solver as well as it might improve accuracy.
--------------------------------------------------------------------------------------
Sensivity of FEM to the quality of tetragedral meshes (inp/tetgen.py)
-----------------------------------------------------------------------------------------------
Improve FEs (the averaged ideas: nodal or face based or F-bar on 2-tet patches)
----------------------------------------------------------------------------
Implement VBO based cut rendering
----------------------------------------------------------------------------
FEM-specific boundary conditions enforcement
----------------------------------------------------------------------------
Consider using GTS for mesh simplification for MESH splitting
----------------------------------------------------------------------------
Rationalize memory use for TIME_SERIES (e.g. do not copy but use
one global object, etc.)
-------------------------------------------------------------------------------------
Better resolve corner adjacent mesh nodes gluing after PARTITION
(currently there could be too many corner gluing constraints)
-------------------------------------------------------------------------------------
Consider using CGAL for boolean operations and convex subdivision (on input only)
----------------------------------------------------------------------------------
Implement REGISTER_SHAPE idea!
---------------------------------------------------------------------------------
Wire-frame rendering of spheres and ellipsoids
-------------------------------------------------
Optimize in mtc.c: XXX bits
-----------------------------------------------------
Redefine MERIT_Function so that sqrt ( ) is used ??
---------------------------------------------------------------------
Parallel Python parsing: at time 0 only rank 0 process creates and
handles bodies for the LOCAL_BODIES mode; then update dom->bid
globally (PUT_int_max);
------------------------------------------------------------------------------
REVIEW body packing routines and make sure that q and u are consitently sent
across for both parents and children !!! Perhaps send M and K rather than
re-compute them. IMPORTANT!!!! this is the main reson of the problems with stability
of the parallel deformable runs!!!! (check repetability of results on simple dynamic
examples: e.g. drum.py with only 4 bodies during the initial 1 s)
------------------------------------------------------------------------------------------
Eliminate dummy bodies => they are not needed (initially it saved some coding when
handling local dynamics in parallel, but for local body storage this needlessly
generates too much memory copying and data transfer) !!!
Only COMCMP in dom.c (for bod->con) seems to require valid con->master/slave pointers
(e.g. having one of them NULL may produce == for different constraints); work around it!
---------------------------------------------------------------------------------
Switch from BLOPEX to PRIMME and expand MODAL_ANALYSIS (interior modes)
---------------------------------------------------------------------------------
Use only one rotation update (middle rotation) in co-rotational approaches (BC only)
---------------------------------------------------------------------------------------
Implement REGISTER_MODAL_BASE idea for replicated large bases (e.g. fuel bricks)
------------------------------------------------------------------------------------------
Fix cohesion.py by integrating contact forces over face ares (without node based contact)