nonlinear eq
+import numpy as np
import sharpy.utils.settings as settings
from sharpy.utils.solver_interface import solver
@@ -119,11 +120,11 @@ class GeneralisedAlpha(_BaseTimeIntegrator):
settings_description['dt'] = 'Time step'
settings_types['am'] = 'float'
- settings_default['am'] =
+ settings_default['am'] = 0.
settings_description['am'] = 'alpha_M coefficient'
settings_types['af'] = 'float'
- settings_default['af'] =
+ settings_default['af'] = 0.1
settings_description['af'] = 'alpha_F coefficient'
@@ -167,22 +168,26 @@ class GeneralisedAlpha(_BaseTimeIntegrator):
def build_matrix(self, M, C, K, Q, q, dqdt, dqddt):
Asys = (self.om_af*K +
- ((self.gamma*self.om_af)/(self.beta*self.dt))*C +
+ self.gamma*self.om_af/self.beta/self.dt*C +
self.om_am/(self.beta*self.dt*self.dt)*M)
- Qout = (Q + np.dot(M, dqddt) +
- np.dot(C, self.dt*self.om_af*dqddt + dqdt) +
- np.dot(K, 0.5*self.om_af*self.dt**2*dqddt + self.om_af*self.dt*dqdt + q))
+ Qout = Q.copy() # + np.dot(M, dqddt)
+ #np.dot(C, self.dt*self.om_af*dqddt + dqdt) +
+ #np.dot(K, 0.5*self.om_af*self.dt**2*dqddt + self.om_af*self.dt*dqdt + q))
return Asys, Qout
def corrector(self, q, dqdt, dqddt, Dq):
# Values at the beginning of the time step
- q_i = q.copy()
- dqdt_i = dqdt.copy()
- dqddt_i = dqddt.copy()
+ # q_i = q.copy()
+ # dqdt_i = dqdt.copy()
+ # dqddt_i = dqddt.copy()
- dqddt = dqddt_i + 1./(self.beta*self.dt*self.dt)*Dq
- dqdt = dqdt_i + self.dt*dqddt_i + self.gamma/self.beta/self.dt*Dq
- q = q_i + self.dt*dqdt_i + self.dt**2/2*dqddt_i + Dq
+ # dqddt = dqddt_i + 1./(self.beta*self.dt*self.dt)*Dq
+ # dqdt = dqdt_i + self.dt*dqddt_i + self.gamma/self.beta/self.dt*Dq
+ # q = q_i + self.dt*dqdt_i + self.dt**2/2*dqddt_i + Dq
+
+ q += self.om_af*Dq
+ dqdt += self.gamma*self.om_af/self.beta/self.dt*Dq
+ dqddt += self.om_am/self.beta/self.dt**2*Dq
