def resultComb(self,nmbComb): '''Solution and result retrieval routine.''' preprocessor= self.feProblem.getPreprocessor preprocessor.resetLoadCase() preprocessor.getLoadHandler.getLoadCombinations.addToDomain(nmbComb) #Solution solution= predefined_solutions.SolutionProcedure() analysis= solution.simpleStaticLinear(self.feProblem) result= analysis.analyze(1) reactions= self.getReactions() preprocessor.getLoadHandler.getLoadCombinations.removeFromDomain(nmbComb) return reactions
def resultComb(prb, nmbComb): preprocessor = prb.getPreprocessor preprocessor.resetLoadCase() preprocessor.getLoadHandler.addToDomain(nmbComb) #Solución solution = predefined_solutions.SolutionProcedure() analysis = solution.simpleStaticLinear(prb) result = analysis.analyze(1) for e in abutmentBearingElements.elements: row = [nmbComb, 'abutment'] row.append(e.tag) rf = e.getResistingForce() for i in range(0, 6): row.append(rf[i]) resistingForces.append(row) for e in pierBearingElements.elements: row = [nmbComb, 'pier'] row.append(e.tag) rf = e.getResistingForce() for i in range(0, 6): row.append(rf[i]) resistingForces.append(row) preprocessor.getLoadHandler.removeFromDomain(nmbComb)
loadHandler = preprocessor.getLoadHandler lPatterns = loadHandler.getLoadPatterns #Load modulation. ts = lPatterns.newTimeSeries("constant_ts", "ts") lPatterns.currentTimeSeries = "ts" #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 #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
def custom_newton_raphson(prb): solution= predefined_solutions.SolutionProcedure() solution.convergenceTestTol= 1e-6 return solution.simpleNewtonRaphson(prb)