2017-01-20 1 views
0

큰 새로운 OpenMDAO 구성 요소를 구축하고 있습니다. 내가 실행할 때, OpenMDAO는 설치 단계에서 AttributeError: 'myNewComponent' object has no attribute 'ln_solver'과 충돌합니다. 이 메시지는 무엇을 의미합니까?구성 요소 객체에 'ln_solver'속성이 없습니다.

import numpy as np 
from openmdao.api import Group, Component, Problem, IndepVarComp, ParallelGroup 
from openmdao.api import ScipyOptimizer 
from openmdao.core.mpi_wrap import MPI 
if MPI: 
    from openmdao.core.petsc_impl import PetscImpl as impl 
else: 
    from openmdao.api import BasicImpl as impl 

class WindSEComp(Component): 
    def __init__(self, nTurbs, rotor_diameter): 

     super(WindSEComp, self).__init__() 

     self.add_param('turbineX', val=np.ones(nTurbs), units='m', desc='x positions of turbines in original ref. frame') 
     self.add_output('AEP', shape=1) 

    def solve_nonlinear(self, params, unknowns, resids): 
     mx_opt = params['turbineX'] 
     unknowns['AEP'] = np.sum(mx_opt) 

    def linearize(self, params, unknowns, resids): 
     mx_opt = params['turbineX'] 
     J = {} 
     J['AEP', 'turbineX'] = 3 * mx_opt 
     return J 


prob = Problem(impl=impl, root=WindSEComp(nTurbs=4, rotor_diameter=126.0)) 
#prob.driver = ScipyOptimizer() 
#prob.driver.add_desvar('turbineX') 
#prob.driver.add_objective('AEP') 

prob.setup() 
prob.run() 

답변

0

그룹과 같은 구성 요소를 사용하려고합니다. 동일하지 않습니다. 다음과 같이하고 싶습니다.

top = Problem() 
root = top.root = Group() 
root.add('g', WindSEComp(nTurbs=4, rotor_diameter=126.0)) 
top.setup() 
top.run() 
관련 문제