def installElementElasticStressesControlRecorder(self,recorderName, elemSet): preprocessor= elemSet.owner.getPreprocessor nodes= preprocessor.getNodeHandler domain= preprocessor.getDomain recorder= domain.newRecorder(recorderName,None) recorder.setElements(elemSet.getTags()) if(nodes.numDOFs==3): self.setupULSControlVars2d(elemSet) recorder.callbackRecord= callback_controls.controTensRecElastico2d() else: self.setupULSControlVars3d(elemSet) recorder.callbackRecord= callback_controls.controTensRecElastico3d() recorder.callbackRestart= "print(\"Restart method called.\")" return recorder
def installElementElasticStressesControlRecorder(self,recorderName, elemSet): preprocessor= elemSet.owner.getPreprocessor nodes= preprocessor.getNodeHandler domain= preprocessor.getDomain recorder= domain.newRecorder(recorderName,None) recorder.setElements(elemSet.getTags()) if(nodes.numDOFs==3): self.setupULSControlVars2d(elemSet) recorder.callbackRecord= callback_controls.controTensRecElastico2d() else: self.setupULSControlVars3d(elemSet) recorder.callbackRecord= callback_controls.controTensRecElastico3d() recorder.callbackRestart= "print \"Restart method called.\"" return recorder
# Geometric transformations lin = modelSpace.newLinearCrdTransf("lin", xc.Vector([0, 0, 1])) shape = HE400B.defElasticShearSection3d(preprocessor) # Elements definition elements = preprocessor.getElementHandler elements.defaultTransformation = lin.name elements.defaultMaterial = HE400B.sectionName elem = elements.newElement("ElasticBeam3d", xc.ID([1, 2])) elem.rho = HE400B.get('P') vc.defSteelShapeElasticRangeElementParameters(elem, HE400B) vc.defVarsControlTensRegElastico3d([elem]) recorder = feProblem.getDomain.newRecorder("element_prop_recorder", None) recorder.setElements(xc.ID([0])) recorder.callbackRecord = cc.controTensRecElastico3d() # Constraints modelSpace.fixNode000_000(1) # Load case definition. lp0 = modelSpace.newLoadPattern(name='0') lp0.newNodalLoad(2, xc.Vector([0, 0, -F, 0, 0, 0])) # We add the load case to domain. modelSpace.addLoadCaseToDomain(lp0.name) # Solution analysis = predefined_solutions.simple_static_linear(feProblem) result = analysis.analyze(1) nodes = preprocessor.getNodeHandler
# Elements definition elements= preprocessor.getElementHandler elements.defaultTransformation= "lin" elements.defaultMaterial= HE400B.sectionName elem= elements.newElement("ElasticBeam3d",xc.ID([1,2])) elem.rho= HE400B.get('P') dp.defSteelShapeElasticRangeElementParameters(elem,HE400B) vc.defVarsControlTensRegElastico3d([elem]) recorder= feProblem.getDomain.newRecorder("element_prop_recorder",None) recorder.setElements(xc.ID([0])) recorder.callbackRecord= cc.controTensRecElastico3d() # Constraints modelSpace.fixNode000_000(1) # Loads definition loadHandler= preprocessor.getLoadHandler lPatterns= loadHandler.getLoadPatterns #Load modulation. ts= lPatterns.newTimeSeries("constant_ts","ts") lPatterns.currentTimeSeries= "ts" lp0= lPatterns.newLoadPattern("default","0") lp0.newNodalLoad(2,xc.Vector([0,0,-F,0,0,0])) #We add the load case to domain.