コード例 #1
0
ファイル: ng_retaining_wall.py プロジェクト: xyuan/xc
 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
コード例 #2
0
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)
コード例 #3
0
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
コード例 #4
0
def custom_newton_raphson(prb):
    solution=  predefined_solutions.SolutionProcedure()
    solution.convergenceTestTol= 1e-6
    return solution.simpleNewtonRaphson(prb)