Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update and include features in multibody #126

Merged
merged 244 commits into from
Apr 5, 2021
Merged

Update and include features in multibody #126

merged 244 commits into from
Apr 5, 2021

Conversation

ArturoMS13
Copy link
Collaborator

@ArturoMS13 ArturoMS13 commented Mar 16, 2021

This pull request modifies some features of the multibody computations which do not influence the user interface:

  • Store multibody information in global A FoR
  • Simplify nomenclature in Lagrange Constraints

And it also includes new features:

  • Choose between Newmark-beta and Generalised-Alpha methods for time integration of multibody systems
  • Relax lagrange multipliers solution
  • Write lagrange multipliers and system condition number to analyse convergence
  • Include scaling and penalty factors

Requirements before merging:

  • Clean up

@ArturoMS13 ArturoMS13 marked this pull request as ready for review March 25, 2021 17:59
@ArturoMS13 ArturoMS13 requested a review from ngoiz March 25, 2021 18:00
@ngoiz ngoiz self-assigned this Mar 25, 2021
Copy link
Collaborator

@ngoiz ngoiz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work, as always. Many thanks @ArturoMS13 !!

Comment on lines +137 to +139
# if (self.data.structure.num_bodies > 1):
# self.data.structure.ini_info.whole_structure_to_local_AFoR(self.data.structure)
# self.data.structure.timestep_info[0].whole_structure_to_local_AFoR(self.data.structure)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want to kill 👎 or leave 👍 this?

def initialise(self, data, custom_settings=None):

self.data = data
if custom_settings is None:
self.settings = data.settings[self.solver_id]
else:
self.settings = custom_settings
settings.to_custom_types(self.settings, self.settings_types, self.settings_default)
settings.to_custom_types(self.settings, self.settings_types, self.settings_default, no_ctype=True)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
settings.to_custom_types(self.settings, self.settings_types, self.settings_default, no_ctype=True)
settings.to_custom_types(self.settings, self.settings_types, self.settings_default)

I guess that thanks to your addition in #123 the no ctype is no longer needed

@@ -73,9 +92,29 @@ def initialise(self, data, custom_settings=None):
self.Lambda_dot = np.zeros((self.num_LM_eq,), dtype=ct.c_double, order='F')
self.Lambda_ddot = np.zeros((self.num_LM_eq,), dtype=ct.c_double, order='F')

if self.settings['write_lm']:
dire = './output/' + self.data.settings['SHARPy']['case'] + '/NonLinearDynamicMultibody/'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once we merge #130, the idea would be to change this to dire = self.data.output_folder + '/NonLinearDynamicMultibody/

@@ -142,8 +142,7 @@ def initialise(self, MBdict_entry, ieq):
@abstractmethod
# def staticmat(self, **kwargs):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to get rid of the commented function definitions?

@ArturoMS13 ArturoMS13 merged commit cf3e1c7 into develop Apr 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants