-
Amira Abdel-Rahman authoredAmira Abdel-Rahman authored
latticeThermalTest.js 3.75 KiB
// Amira Abdel-Rahman
// (c) Massachusetts Institute of Technology 2020
///////////call from node app.js code///////////////
// wait for the rhino3dm web assembly to load asynchronously
// rhino3dm().then(function(m) {// todo change call to app.js
// _rhino3dm = m; // global
// initRhino3dm(1,10,createVoxel,true,true);
// saveJSON();
// });
/////////////////////////////////////
var three; //todo change location
var three1; //todo change location
var setup=JSON.parse(JSON.stringify(setupEmpty));
var gridSize=20;
// var setup1=JSON.parse(JSON.stringify(setupEmpty));
var globalSetup={
exaggeration:1.0,
speed:3.0,
updateStress:false
};
rhino3dm().then(async m => {
console.log('Loaded rhino3dm.');
_rhino3dm = m; // global
var latticeSizeX=7;
var latticeSizeY=2;
var latticeSizeZ=2;
var voxelSize=5.0;
var voxelSize=0.001;
var material={
area:voxelSize*voxelSize,
density:0.028,
stiffness:2000,
poissonRatio:0.3
};
var material={
area:voxelSize*voxelSize,
density:1e3,
stiffness:1e6,
poissonRatio:0.0,
cTE:0.01
};
const position=new THREE.Vector3(0,0,0);
setup=JSON.parse(JSON.stringify(setupEmpty));
setup.hierarchical=true;
setup.voxelSize=voxelSize;
voxelSize=voxelSize/15.0;
createLattice(setup,voxelSize,latticeSizeX,latticeSizeY,latticeSizeZ,createHierarchalVoxel,material);
var support=new _rhino3dm.BoundingBox(
[
-voxelSize/2+position.x,
-voxelSize/2+position.y,
-voxelSize/2+position.z
], [
voxelSize/2+position.x,
voxelSize/2+position.y +voxelSize*(latticeSizeY-1),
voxelSize/2+position.z +voxelSize*(latticeSizeZ-1)
]);
var load=new _rhino3dm.BoundingBox(
[
-voxelSize/2+position.x +voxelSize*(latticeSizeX-1),
-voxelSize/2+position.y,
-voxelSize/2+position.z
], [
voxelSize/2+position.x +voxelSize*(latticeSizeX-1),
voxelSize/2+position.y +voxelSize*(latticeSizeY-1),
voxelSize/2+position.z +voxelSize*(latticeSizeZ-1)
]);
var dof=[true,true,true,true,true,true];
var supports=[[support,dof]];
var loads=[[load,{x:0.0,y:0.0,z:0.0}]];
restrainFromBox(setup,supports);
// loadFromBox(setup,loads);
setup.supports=[
// [{
// min:[
// support.min[0],
// support.min[1],
// support.min[2]
// ],
// max:[
// support.max[0],
// support.max[1],
// support.max[2]
// ]
// }]
];
setup.loads=[
// [{
// min:[
// load.min[0],
// load.min[1],
// load.min[2]
// ],
// max:[
// load.max[0],
// load.max[1],
// load.max[2]
// ]
// }],
// [{
// min:[
// load1.min[0],
// load1.min[1],
// load1.min[2]
// ],
// max:[
// load1.max[0],
// load1.max[1],
// load1.max[2]
// ]
// }]
];
// latticeSetup(setup,latticeSize,voxelSize,createHierarchalVoxel,{x:0,y:-400,z:0},material);
// setup.viz.colorMaps=[YlGnBu,coolwarm, winter ,jet];
setup.viz.minStress=10e6;
setup.viz.maxStress=-10e6;
setup.viz.exaggeration=1.0;
setup.numTimeSteps=100;
setup.floorEnabled=false;
setup.gravityEnabled=false;
setup.staticSimulation=true;
setup.poisson=false;
setup.scale=1e5;
setup.linear=true;
setup.globalDamping=0.15;
setup.thermal=true;
saveJSON();
});