-
Notifications
You must be signed in to change notification settings - Fork 7
/
to_do.txt
executable file
·95 lines (86 loc) · 5.03 KB
/
to_do.txt
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
NEW LOOP_NETWORK CODE
- Implement model/Fem
class NodeSelectorBase
virtual bool contains(x) const =0;
Then
class HalfSpaceSelector : public NodeSelectorBase
P
n
bool contains(x) const override
{
reuturn (P-x).dot(n)>=0;
}
class PlaneSelector : public NodeSelectorBase
P
n
bool contains(x) const override
{
reuturn (P-x).dot(n)==0;
}
class MeshFaceSelector : public NodeSelectorBase
P
n
bool contains(x) const override
{
reuturn (P-x).dot(n)==0;
}
- Merge loops on same plane
- FORCES ON VIRTUAL NODES MUST BE ADDED TO PARENT NODES
- CROSSSLIP WITH EXPANSION
- MOTION OF BOUNDARY NODES BY BOUNDING BOX INTERSECTION
- Mobility specific to slip system
- Make Loops with |Burgers|>1 sessile
- Rework crossslip
- Microstructure generator with different distributions
- DDvtk movies
- DDvtk cannot interrupt autoplay
- New time integrator
- Natural Cubic Splines
- Non-convex domains (each grain convex?)
- mesh search algorithms for non-convex domains (e.g. foam)
- Convex decomposition of Mesh (http://masc.cs.gmu.edu/wiki/ACD)
- Non convex domains changes: barycentric search algorithm, PlaneMeshIntersection::planeMeshIntersection, virtual segments, initial microstructure
- Use CGAL?
- Documentation
- Hoffman2 documentation (see emails between Yinan and Raffaella)
- SpaceDecompositin based on KD-tree
- Replace const static with constexpr in LagrangeElement and DiscontinuousLagrange http://www.cplusplus.com/forum/general/121300/
- Make all quadratures constexpr
- Use constexpr std::array for quadrature
- Make LatticePlane and LatticePlaneBase templated by dim
- GPU computation
- Implement cracks
- Assemble and solve is taking too long (> particle interaction). Can we assemble scalar system of equations? Null-space solver?
- display help in DDvtk
- SplineIntersection::planePlaneType uses the wrong tolerance (10x)
- If T0=0 or T1=0, then rl(0)=0/0=NaN !!!!! This is not true since rl still tends to a finite vector. Remove class Parametric curve and implement special case of rl at 0 and 1 for vanishing nodal tangents
- cellSize should depend on applied load. Or better the number of cell neighbors used in each cell should depend on the applied stress to that cell
- Implement operator << SpatialCell
- iterate on JunctionFormation until no junctions if found
- iterate on Remesh
- Optimize Remesh
- DislocationJunctions: IF CONTRACT DID NOT HAPPEN REMOVE NODES THAT WERE CREATED BY EXPANSION. STORE IDS IN CONTAINER AND THEN REMOV
- Form GB junctions??
- Stress field is absent in some segments for evaluation of transmission criterion
- bring createNodeList to TrialFunction (node lists are in created to set a dirichlet condition for a particular trial function). Make fe const in trial function.
- IMPLEMENT FUNCTION TO DEFINE THE OUT-DIR FOR EACH LOOP LINK. THIS IS BASED ON THE INTERSECTION OF A SEM-ILINE WITH THE LOOP IN THE PLANE. NUMBER OF INTERSECTIONS TELLS INSIDE OR OUTSIDE
- topological operation to split a node into many nodes, one per loops connected. Similar to “remove”. This is actually a remove followed by many expansions
-THE PROBLEM IS THAT IF F FOR A NODE IS ZERO, THE VELOCITY IS NOT ZERO, THIS IS WHY PURE ZERO-B NODES MOVE
- RELATED TO THIS, WE NEED TO MERGE LOOPS ON THE SAME PLANE
-THERE IS ALSO A PROBLEM WITH THE TRIANGULATION FOR CROSSING LOOPS
- We should always assume that velocity within a segment is interpolated linearly, so no need for complex assembly construction for curved segments (i.e. matrix Mseg is identity)
- DislocationJunctionFormation::glissileJunctions is not forming <100>{110} and <110>{110} types glissile loops, because it is only looping iver the <111>{110} types
- Remove Observer patter and substitute with weak_ptr
- TrialExpression should be called LinearizedTrialExpression, since it is in the form M*u where M is the shape function matrix.
- OUTPU MESHDISPLACEMENT IN AUX files
ISSUES:
- Should form finite length junctions
- When remesh removes a node, part of the slipped area is removed. This should be accounted in the plastic strain rate, but is is not. As a consequence, when a new node is added, plastic strain rate oscillates about a non-zero mean value.
ERRORS
1) FIXED
remeshing network: contracting... Assertion failed: (boundingBoxSegments().size()==1 && "There should be only one line in boundingBoxSegments()"), function updateGlidePlaneIntersections, file ../../../model/DislocationDynamics/DislocationNode.h, line 115.
2) Assertion failed: (false && "BOUNDARY NODES MUST HAVE A NON-ZERO NORMAL"), function set_P, file ../../../model/DislocationDynamics/DislocationNode.h, line 1123.
Abort trap: 6
3) THIS IS BECASUSE WE DON'T CHECK THE OUTPUT OF DislocaationNode::set_P in DislocationNodeContraction
remeshing network: contracting... Assertion failed: (gp.contains(this-> sink->get_P()) && "Glide Plane does not contain sink"), function addGlidePlane, file ../../../model/DislocationDynamics/DislocationSegment.h, line 270.
4) remeshing network: expanding... Assertion failed: (0 && "Intersection must be COINCIDENT or INCIDENT."), function updateGlidePlaneIntersections, file ../../../model/DislocationDynamics/DislocationNode.h, line 188.