Exemple #1
0
# but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See the GNU Affero General Public License for more details.
# You should have received a copy of the GNU Affero
# General Public License along with pyBeam.
# If not, see <http://www.gnu.org/licenses/>.
#

import sys, os
from pyBeamLibAD import pyBeamSolverAD

# Load running directory
file_dir = os.path.dirname(os.path.realpath(__file__))

beam = pyBeamSolverAD(file_dir, 'config_AD.cfg')

iNode = 21 - 1

beam.ReadRestart()

beam.SetLoads(iNode, 0, 0, 60000)

beam.StartRecording()

beam.SetDependencies()

#beam.SetDisplacementAdjoint(iNode, 0.0, 0.0, 0.0)

beam.Restart()
Exemple #2
0
config_file = file_dir + '/config.pyMLS'
MLS = interpolate.pyMLSInterface(config_file, AeroNodes, StructNodes)

loadsX = MLS.interpolation_matrix.transpose().dot(AeroLoads[:, 0])
loadsY = MLS.interpolation_matrix.transpose().dot(AeroLoads[:, 1])
loadsZ = MLS.interpolation_matrix.transpose().dot(AeroLoads[:, 2])

adjX = MLS.interpolation_matrix.transpose().dot(AeroAdjoints[:, 0])
adjY = MLS.interpolation_matrix.transpose().dot(AeroAdjoints[:, 1])
adjZ = MLS.interpolation_matrix.transpose().dot(AeroAdjoints[:, 2])

########################################
# Initialize and set loads/crossed terms
########################################

adjoint = pyBeamSolverAD(file_dir, 'configAD.pyBeam')

for iNode in range(0, len(loadsX)):
    adjoint.SetLoads(iNode, loadsX[iNode], loadsY[iNode], loadsZ[iNode])
    adjoint.SetDisplacementAdjoint(iNode, adjX[iNode], adjY[iNode],
                                   adjZ[iNode])

############################
# Solve adjoint
############################

adjoint.ReadRestart()
adjoint.StartRecording()
adjoint.SetDependencies()
adjoint.Restart()
adjoint.StopRecording()