Source code for trusspy.handlers.handler_result
# -*- coding: utf-8 -*-
"""
title: TrussPy - Truss Solver for Python
author: Andreas Dutzler
year: 2023
"""
import copy
import numpy as np
from ..core.analysis import Analysis
[docs]class ResultHandler:
"Handler for Result Data"
def __init__(self):
self.R = []
self.step_lpf_end = []
[docs] def add_increment(self, analysis=None, extforces=None, lpf=None):
"add single Result to ResultManager"
if analysis is None:
result = Analysis()
else:
result = copy.deepcopy(analysis)
if extforces is not None:
result.ExtForces = copy.deepcopy(extforces)
result.ExtForces.forces_const = np.zeros_like(result.U)
result.lpf = lpf
# add the increment
self.R.append(result)
[docs] def copy_increment(self):
"add single Result to ResultManager"
self.R.append(copy.deepcopy(self.R[-1]))
[docs] def remove_last_increment(self):
"remove last Result from ResultManager"
self.R.pop()
[docs] def duplicate_first_increment(self):
"duplicate first Result in ResultManager"
self.R = [copy.deepcopy(self.R[0])] + self.R
[docs] def build_result(self, nnodes, nelems, ndim, DOF0, DOF1, nstatev):
self.R[-1].build(nnodes, nelems, ndim, DOF0, DOF1, nstatev)
[docs] def get_result(self, i):
"get i-th result"
return self.R[i]