Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Amanda Ghassaei
AMOEBA
Commits
1b9b10dd
Commit
1b9b10dd
authored
Jun 28, 2016
by
amandaghassaei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
eod
parent
9ac896d3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
45 deletions
+19
-45
js/plists/MaterialsPlist.js
js/plists/MaterialsPlist.js
+1
-1
js/simulation/function/EM/emSimLattice.js
js/simulation/function/EM/emSimLattice.js
+18
-44
No files found.
js/plists/MaterialsPlist.js
View file @
1b9b10dd
...
...
@@ -103,7 +103,7 @@ define([], function(){
texture
:
"
stripes
"
,
properties
:{
conductive
:
false
,
density
:
3
8500
,
//kg/m^3
density
:
8500
,
//kg/m^3
longitudalK
:{
x
:
10
,
y
:
10
,
z
:
10
},
shearK
:{
xy
:
10
,
xz
:
10
,
yx
:
10
,
yz
:
10
,
zx
:
10
,
zy
:
10
},
bendingK
:{
x
:
10
,
y
:
10
,
z
:
10
},
...
...
js/simulation/function/EM/emSimLattice.js
View file @
1b9b10dd
...
...
@@ -46,9 +46,9 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
this
.
textureSize
=
[
textureDim
,
textureDim
];
this
.
originalPosition
=
new
Float32Array
(
textureSize
*
4
);
this
.
translation
=
new
Float32Array
(
textureSize
*
8
);
//first ha
ve
is translation, second half is rotation
this
.
translation
=
new
Float32Array
(
textureSize
*
8
);
//first ha
lf
is translation, second half is rotation
this
.
lastTranslation
=
new
Float32Array
(
textureSize
*
8
);
this
.
velocity
=
new
Float32Array
(
textureSize
*
8
);
this
.
velocity
=
new
Float32Array
(
textureSize
*
8
);
//first half is translation, second half is rotation
this
.
lastVelocity
=
new
Float32Array
(
textureSize
*
8
);
this
.
quaternion
=
new
Float32Array
(
textureSize
*
4
);
...
...
@@ -599,7 +599,6 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
for
(
var
j
=
0
;
j
<
6
;
j
++
){
var
_force
=
[
0
,
0
,
0
];
var
_rForce
=
[
0
,
0
,
0
];
var
neighborsIndex
=
i
*
8
;
if
(
j
>
2
)
neighborsIndex
+=
4
;
...
...
@@ -615,7 +614,6 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
//var nominalD = this._neighborOffset(j, latticePitch);
//var actuatedD = [nominalD[0], nominalD[1], nominalD[2]];
var
neighborAxis
=
Math
.
floor
(
j
/
2
);
var
neighborDirection
=
this
.
_neighborSign
(
j
);
//var actuation = 0;
//if (isActuator && wiring[neighborAxis+1]>0) {
// actuation += 0.3*this._getActuatorVoltage(wiring[neighborAxis+1]-1, time);
...
...
@@ -626,8 +624,6 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
//}
//actuatedD[neighborAxis] *= 1+actuation;
//var k = 100;
//var d = 100/1000;
//todo don't need all these at once
var
longitudalK
=
[
this
.
compositeKs
[
neighborsIndex
+
j
%
3
],
this
.
compositeKs
[
neighborsIndex
+
j
%
3
+
textureSize
*
8
],
this
.
compositeKs
[
neighborsIndex
+
j
%
3
+
2
*
textureSize
*
8
]];
var
bendingK
=
[
this
.
compositeKs
[
neighborsIndex
+
j
%
3
+
3
*
textureSize
*
8
],
this
.
compositeKs
[
neighborsIndex
+
j
%
3
+
4
*
textureSize
*
8
],
this
.
compositeKs
[
neighborsIndex
+
j
%
3
+
5
*
textureSize
*
8
]];
...
...
@@ -663,7 +659,7 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
_force
[
_axis
]
+=
longitudalK
[
_axis
]
*
translationalDeltaXYZ
[
_axis
]
+
longitudalD
[
_axis
]
*
velocityDeltaXYZ
[
_axis
];
}
else
{
var
shearIndex
=
this
.
_shearIndex
(
neighborAxis
,
_axis
);
_force
[
_axis
]
+=
shearK
[
shearIndex
]
*
translationalDelta
[
_axis
]
+
shearD
[
shearIndex
]
*
velocityDeltaXYZ
[
_axis
];
_force
[
_axis
]
+=
shearK
[
shearIndex
]
*
translationalDelta
XYZ
[
_axis
]
+
shearD
[
shearIndex
]
*
velocityDeltaXYZ
[
_axis
];
}
}
...
...
@@ -675,43 +671,22 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
var
torque
=
this
.
_crossVectors
(
cellHalfNominalD
,
_force
);
//cellHalfNominalD = lever arm
rForce
=
this
.
_addVectors
(
rForce
,
torque
);
//bending and torsion
for
(
var
_axis
=
0
;
_axis
<
3
;
_axis
++
)
{
if
(
_axis
==
neighborAxis
){
rForce
[
_axis
]
+=
0.001
*
torsionK
[
_axis
]
*
(
neighborRotation
[
_axis
]
-
rotation
[
_axis
]);
// + torsionD[_axis]*(neighborAngVelocity[_axis]-angVelocity[_axis]);
}
else
{
rForce
[
_axis
]
+=
0.001
*
bendingK
[
_axis
]
*
(
neighborRotation
[
_axis
]
-
rotation
[
_axis
]);
// + bendingD[_axis]*(neighborAngVelocity[_axis]-angVelocity[_axis]);
}
}
//console.log(rotation);
//console.log(neighborRotation);
//console.log(angVelocity);
//console.log(neighborAngVelocity);
//console.log(quaternion);
//console.log(rForce);
//console.log("");
////non-axial rotation
//var nonAxialRotation = this._quaternionFromUnitVectors(this._normalize3D(nominalD), this._normalize3D(D));
//
////axial rotation
//var axis = rotatedNominalD;//neighbRotatedHalfNomD
//var angle = this._dotVectors(neighborEuler, this._normalize3D(axis));
//var torsion = this._quaternionFromAxisAngle(this._normalize3D(nominalD), angle);
//
////torsion and bending
//var rotaionEuler = this._eulerFromQuaternion(this._multiplyQuaternions(nonAxialRotation, torsion));
//for (var _axis=0;_axis<3;_axis++){
// var _k;
// var _d;
// if (_axis == neighborAxis){
// _k = torsionK[_axis];
// _d = torsionD[_axis];
// } else {
// _k = bendingK[_axis];
// _d = bendingD[_axis];
// }
// rTotal[_axis] += rotaionEuler[_axis]*_k;
// rContrib[_axis] += _k;
//}
//var neighborAxis = Math.floor(j/2);
//var bend = [euler[0]-neighborEuler[0], euler[1]-neighborEuler[1], euler[2]-neighborEuler[2]];
//var bendForce = [0,0,0];
//for (var l=0;l<3;l++){
// if (l == neighborAxis) continue;
// bendForce[this._torqueAxis(l, neighborAxis)] = bend[l]*k/1000000000;
//}
//
//var bendingForce = this._applyQuaternion(bendForce, quaternion);
//force[0] += bendingForce[0];
//force[1] += bendingForce[1];
//force[2] += bendingForce[2];
}
////simple collision detection
...
...
@@ -732,7 +707,6 @@ define(['underscore', 'backbone', 'threeModel', 'lattice', 'plist', 'emWire', 'G
var
acceleration
=
[
force
[
0
]
/
mass
,
force
[
1
]
/
mass
,
force
[
2
]
/
mass
];
velocity
=
[
velocity
[
0
]
+
acceleration
[
0
]
*
dt
,
velocity
[
1
]
+
acceleration
[
1
]
*
dt
,
velocity
[
2
]
+
acceleration
[
2
]
*
dt
];
translation
=
[
translation
[
0
]
+
velocity
[
0
]
*
dt
,
translation
[
1
]
+
velocity
[
1
]
*
dt
,
translation
[
2
]
+
velocity
[
2
]
*
dt
];
//console.log(translation[2]);
this
.
translation
[
rgbaIndex
]
=
translation
[
0
];
this
.
translation
[
rgbaIndex
+
1
]
=
translation
[
1
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment