mast-multiphysics icon indicating copy to clipboard operation
mast-multiphysics copied to clipboard

Feature/add beam library

Open JohnDN90 opened this issue 5 years ago • 4 comments

This branch adds support for various cross sections named and parameterized based on MSC Nastran's beam library.

JohnDN90 avatar Mar 09 '20 17:03 JohnDN90

@manavbhatia and @jdeaton I think this initial beam library is ready to be moved into master. If you two could look it over, I'd appreciate it.

JohnDN90 avatar Mar 31 '20 19:03 JohnDN90

As I'm going through this I'm pretty sure that some of the section property classes (and accompanying files need renamed). For example, Solid1DTubeSectionElementPropertyCard doesn't make sense because a hollow tube is not a solid section...should probably be just 1DTubeSectionElementPropertyCard.

I think we could also consider a larger refactoring here for clarity. The more specific classes don't follow the same naming convention as the base classes they inherit from. For example:

  • ElementPropertyCardBase-ElementPropertyCard1D-Solid1DSectionElementPropertyCard
  • ElementPropertyCardBase-ElementPropertyCard1D-Multilayer1DSectionElementPropertyCard
  • ElementPropertyCardBase-ElementPropertyCard1D-xxx1DxxSectionElementPropertyCard and
  • ElementPropertyCardBase-ElementPropertyCard2D-Solid2DSectionElementPropertyCard
  • ElementPropertyCardBase-ElementPropertyCard2D-Multilayer2DSectionElementPropertyCard

What if we refactored everything to more consistent naming like:

  • ElementPropertyCardBase-ElementPropertyCard1D-ElementPropertyCard1DSolidSection
  • ElementPropertyCardBase-ElementPropertyCard1D-ElementPropertyCard1DMultilayerSection
  • ElementPropertyCardBase-ElementPropertyCard1D-ElementPropertyCard1DxxxSection
  • ElementPropertyCardBase-ElementPropertyCard2D-ElementPropertyCard2DSolidSection
  • ElementPropertyCardBase-ElementPropertyCard2D-ElementPropertyCard2DMultilayerSection
  • ElementPropertyCardBase-ElementPropertyCard2D-ElementPropertyCard2DxxxSection

This would benefit a number of things with sorting. Related files would be grouped together, classes in IDE's would group, and I believe the API documentation would sort related element property classes closer together.

@manavbhatia do you have any thoughts on this bigger refactoring? We will definitely fix the oddly named 1D sections for the beam library.

jdeaton avatar Apr 03 '20 19:04 jdeaton

I second comments by @jdeaton. One other comment I would add is concerning the if/then/else blocks in the internal_residual and related methods to manage the workflow with or without warping analysis. As I understand, you are also looking to add similar blocks to switch for springs/bush elements in upcoming PRs.

My upcoming changes are looking to address such changes where new types of internal_residual evaluation routines can be added by a user to implement new types of elements without needed to add blocks like these. Once this gets merged, this would provide a new (hopefully, improved) mechanism to address such situations. I don't think it would affect this current implementation, but I am just giving you a heads up.

manavbhatia avatar Apr 14 '20 01:04 manavbhatia

Once comments from @jdeaton have been addressed, then this can be merged.

manavbhatia avatar Apr 14 '20 01:04 manavbhatia