lp0.newNodalLoad(n10.tag, xc.Vector(loadOnDOFs)) #We add the load case to domain. lPatterns.addToDomain("0") # Solution #analisis= predefined_solutions.simple_static_linear(feProblem) solver = predefined_solutions.SolutionProcedure() analisis = solver.simpleLagrangeStaticLinear(feProblem) #analisis= solver.simpleTransformationStaticLinear(feProblem) result = analisis.analyze(1) nodes.calculateNodalReactions(False, 1e-7) reactionNode10 = n10.getReaction ratio1 = reactionNode10.Norm() svdReactionNodes = nodal_reactions.getReactionFromNodes( nodes, "UVWRxRyRz", elem.getNodes.getExternalNodes) actionNode10 = xc.Vector(loadOnDOFs) actionNode10Norm = actionNode10.Norm() svdAction = nodal_reactions.getSlidingVectorsSystemfromSlidingVector( "UVWRxRyRz", n10.get3dCoo, actionNode10) svdResid = svdReactionNodes + svdAction ratio2 = svdResid.getResultant().getModulo() / actionNode10Norm ratio3 = svdResid.getMoment().getModulo() / actionNode10Norm reactionNode20 = n20.getReaction ratio4 = reactionNode20.Norm() actionNode20 = xc.Vector([0, 0, 0, 0, 0, 0]) actionNode20Norm = actionNode20.Norm() # print "svdAction= ", svdAction # print "svdReactionNodes= ", svdReactionNodes
lp0.newNodalLoad(10, xc.Vector(loadOnDOFs)) #We add the load case to domain. casos.addToDomain("0") # Solution # Solution solver = predefined_solutions.SolutionProcedure() analisis = solver.simpleLagrangeStaticLinear(feProblem) result = analisis.analyze(1) nodes.calculateNodalReactions(False) nodes.calculateNodalReactions(False) reactionNode10 = nodes.getNode(10).getReaction ratio1 = reactionNode10.Norm() svdReactionNodes = nodal_reactions.getReactionFromNodes( nodes, "UVWRxRyRz", [1, 2, 3, 4]) actionNode10 = xc.Vector(loadOnDOFs) actionNode10Norm = actionNode10.Norm() svdAction = nodal_reactions.getSVDfromVDesliz("UVWRxRyRz", n10.get3dCoo, actionNode10) svdResid = svdReactionNodes + svdAction ratio2 = svdResid.getResultante().getModulo() / actionNode10Norm ratio3 = svdResid.getMomento().getModulo() / actionNode10Norm # print "svdAction= ", svdAction # print "svdReactionNodes= ", svdReactionNodes # print "svdResid= ", svdResid # print "ratio1= ", ratio1 # print "ratio2= ", ratio2 # print "ratio3= ", ratio3 # print "RN2= ", RN2
#Load case definition lp0= lPatterns.newLoadPattern("default","0") lp0.newNodalLoad(n10.tag,xc.Vector(loadOnDOFs)) #We add the load case to domain. lPatterns.addToDomain("0") # Solution solver= predefined_solutions.SolutionProcedure() analisis= solver.simpleTransformationStaticLinear(feProblem) result= analisis.analyze(1) nodes.calculateNodalReactions(False,1e-7) reactionNode10= n10.getReaction ratio1= reactionNode10.Norm() svdReactionNodes= nodal_reactions.getReactionFromNodes(nodes,"UVWRxRyRz",elem.getNodes.getExternalNodes) actionNode10= xc.Vector(loadOnDOFs) actionNode10Norm= actionNode10.Norm() svdAction= nodal_reactions.getSlidingVectorsSystemfromSlidingVector("UVWRxRyRz",n10.get3dCoo,actionNode10) svdResid= svdReactionNodes+svdAction ratio2= svdResid.getResultant().getModulo()/actionNode10Norm ratio3= svdResid.getMoment().getModulo()/actionNode10Norm # print "svdAction= ", svdAction # print "svdReactionNodes= ", svdReactionNodes # print "svdResid= ", svdResid # print "ratio1= ", ratio1 # print "ratio2= ", ratio2 # print "ratio3= ", ratio3 # print "RN2= ", RN2 # print "RN3= ", RN3
lPatterns.currentTimeSeries = "ts" #Load case definition lp0 = lPatterns.newLoadPattern("default", "0") lp0.newNodalLoad(nA.tag, xc.Vector(loadOnDOFs)) #We add the load case to domain. lPatterns.addToDomain(lp0.name) # Solution analisis = predefined_solutions.simple_static_linear(feProblem) result = analisis.analyze(1) nodes.calculateNodalReactions(False, 1e-7) reactionNodeA = nA.getReaction ratio1 = reactionNodeA.Norm() svdReactionNodes = nodal_reactions.getReactionFromNodes( nodes, "UVWRxRyRz", [n1.tag, n2.tag, n3.tag, n4.tag]) actionNodeA = xc.Vector(loadOnDOFs) actionNodeANorm = actionNodeA.Norm() svdAction = nodal_reactions.getSlidingVectorsSystemfromSlidingVector( "UVWRxRyRz", nA.get3dCoo, actionNodeA) svdResid = svdReactionNodes + svdAction ratio2 = svdResid.getResultant().getModulus() / actionNodeANorm ratio3 = svdResid.getMoment().getModulus() / actionNodeANorm # print "svdAction= ", svdAction # print "svdReactionNodes= ", svdReactionNodes # print "svdResid= ", svdResid # print "ratio1= ", ratio1 # print "ratio2= ", ratio2 # print "ratio3= ", ratio3 # print "RN2= ", RN2
#Load case definition lp0= lPatterns.newLoadPattern("default","0") lp0.newNodalLoad(10,xc.Vector(loadOnDOFs)) #We add the load case to domain. lPatterns.addToDomain("0") # Solution # Solution solver= predefined_solutions.SolutionProcedure() analisis= solver.simpleLagrangeStaticLinear(feProblem) result= analisis.analyze(1) nodes.calculateNodalReactions(False,1e-7) reactionNode10= nodes.getNode(10).getReaction ratio1= reactionNode10.Norm() svdReactionNodes= nodal_reactions.getReactionFromNodes(nodes,"UVWRxRyRz",[1,2,3,4]) actionNode10= xc.Vector(loadOnDOFs) actionNode10Norm= actionNode10.Norm() svdAction= nodal_reactions.getSlidingVectorsSystemfromSlidingVector("UVWRxRyRz",n10.get3dCoo,actionNode10) svdResid= svdReactionNodes+svdAction ratio2= svdResid.getResultant().getModulo()/actionNode10Norm ratio3= svdResid.getMoment().getModulo()/actionNode10Norm # print "svdAction= ", svdAction # print "svdReactionNodes= ", svdReactionNodes # print "svdResid= ", svdResid # print "ratio1= ", ratio1 # print "ratio2= ", ratio2 # print "ratio3= ", ratio3 # print "RN2= ", RN2 # print "RN3= ", RN3