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

bugfix of SurfaceStiffnessModification assignment to StructureModific… #315

Merged
merged 1 commit into from
Nov 20, 2023

Conversation

TomasPail
Copy link

Description

When I try to run it with the current customer version and the current Python High Level Library (current main branch), I get an error message in modify_stiffnesses_surface_table. The problem is related to the correction of bug 99736. The Python High Level Library does not seem to be adapted to the correction yet.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • Unit Tests
  • Attached examples

Test Configuration:

  • RFEM / RSTAB version: 6.04.0007
  • Python version:

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

=====

_#Testing stiffness modification in RFEM
#Status as of 20 September 2023 - not working correctly

rfem_file="Test_001.rf6"

import os
import sys
baseName = os.path.basename(file)
dirName = os.path.dirname(file)
print('basename: ', baseName)
print('dirname: ', dirName)
sys.path.append(dirName + r'/../..')

from RFEM.initModel import Model

from RFEM.LoadCasesAndCombinations.loadCase import LoadCase
from RFEM.LoadCasesAndCombinations.loadCombination import LoadCombination
from RFEM.enums import AnalysisType
from RFEM.BasicObjects.node import Node
from RFEM.BasicObjects.line import Line
from RFEM.BasicObjects.surface import Surface
from RFEM.TypesForSurfaces.surfaceStiffnessModification import SurfaceStiffnessModification, SurfaceStiffnessModificationType
from RFEM.SpecialObjects.structureModification import StructureModification
from RFEM.baseSettings import GlobalAxesOrientationType, BaseSettings, LocalAxesOrientationType
from RFEM.Calculate.meshSettings import GetModelInfo

#create new model
CurrModel = Model(True, model_name=rfem_file, delete=False, delete_all=False)

BaseSettings(
global_axes_orientation=GlobalAxesOrientationType.E_GLOBAL_AXES_ORIENTATION_ZUP,
local_axes_orientation=LocalAxesOrientationType.E_LOCAL_AXES_ORIENTATION_ZUP)

generate simple test structure 5x5 Surface

Node(1, 0, 0, 0)
Node(2, 5, 0, 0)
Node(3, 5, 5, 0)
Node(4, 0, 5, 0)
Line(1, '1 2')
Line(2, '2 3')
Line(3, '3 4')
Line(4, '4 1')
Surface(1, '1 2 3 4')

LoadCase.StaticAnalysis(
no=1,
name="EG",
to_solve=True,
analysis_settings_no=1,
self_weight=[True, 0, 0, -1],
model=CurrModel)

#generate surface stiffness modification factors - this works
SurfaceStiffnessModification(
no=1,
type=SurfaceStiffnessModificationType.TYPE_TOTAL_STIFFNESS_FACTOR,
factors=[0.5],
model=CurrModel)

SurfaceStiffnessModification(
no=2,
type=SurfaceStiffnessModificationType.TYPE_TOTAL_STIFFNESS_FACTOR,
factors=[0.75],
model=CurrModel)

#the following command does not work
#it creates the structure modification in RFEM, applies the "surface modfication", but does not fill the table
StructureModification(
no=1,
modify_stiffnesses={
'modify_stiffnesses_gamma_m': False,
'modify_stiffnesses_materials': False,
'modify_stiffnesses_sections': False,
'modify_stiffnesses_members': False,
'modify_stiffnesses_surfaces': True,
'modify_stiffnesses_member_hinges': False,
'modify_stiffnesses_line_hinges': False,
'modify_stiffnesses_nodal_supports': False,
'modify_stiffnesses_line_supports': False,
'modify_stiffnesses_member_supports': False,
'modify_stiffnesses_surface_supports': False,
'modify_stiffness_member_reinforcement': False,
'modify_stiffness_surface_reinforcement': False,
'modify_stiffness_timber_members_due_moisture_class': False,
'nonlinearities_disabled_material_nonlinearity_models': False,
'nonlinearities_disabled_material_temperature_nonlinearities': False,
'nonlinearities_disabled_line_hinges': False,
'nonlinearities_disabled_member_types': False,
'nonlinearities_disabled_member_nonlinearities': False,
'nonlinearities_disabled_solid_types_contact_or_surfaces_contact': False,
'nonlinearities_disabled_member_hinges': False,
'nonlinearities_disabled_nodal_supports': False,
'nonlinearities_disabled_line_supports': False,
'nonlinearities_disabled_member_supports': False,
'nonlinearities_disabled_surface_supports': False,
'deactivate_members_enabled': False},
modify_stiffnesses_surfaces_list=[{'no': 1, 'surface_modification': 1, 'surfaces': '1', 'comment': 'Test1'}],
model=CurrModel)_

This PR has 13 quantified lines of changes. In general, a change size of upto 200 lines is ideal for the best PR experience!


Quantification details

Label      : Extra Small
Size       : +9 -4
Percentile : 5.2%

Total files changed: 1

Change summary by file extension:
.py : +9 -4

Change counts above are quantified counts, based on the PullRequestQuantifier customizations.

Why proper sizing of changes matters

Optimal pull request sizes drive a better predictable PR flow as they strike a
balance between between PR complexity and PR review overhead. PRs within the
optimal size (typical small, or medium sized PRs) mean:

  • Fast and predictable releases to production:
    • Optimal size changes are more likely to be reviewed faster with fewer
      iterations.
    • Similarity in low PR complexity drives similar review times.
  • Review quality is likely higher as complexity is lower:
    • Bugs are more likely to be detected.
    • Code inconsistencies are more likely to be detected.
  • Knowledge sharing is improved within the participants:
    • Small portions can be assimilated better.
  • Better engineering practices are exercised:
    • Solving big problems by dividing them in well contained, smaller problems.
    • Exercising separation of concerns within the code changes.

What can I do to optimize my changes

  • Use the PullRequestQuantifier to quantify your PR accurately
    • Create a context profile for your repo using the context generator
    • Exclude files that are not necessary to be reviewed or do not increase the review complexity. Example: Autogenerated code, docs, project IDE setting files, binaries, etc. Check out the Excluded section from your prquantifier.yaml context profile.
    • Understand your typical change complexity, drive towards the desired complexity by adjusting the label mapping in your prquantifier.yaml context profile.
    • Only use the labels that matter to you, see context specification to customize your prquantifier.yaml context profile.
  • Change your engineering behaviors
    • For PRs that fall outside of the desired spectrum, review the details and check if:
      • Your PR could be split in smaller, self-contained PRs instead
      • Your PR only solves one particular issue. (For example, don't refactor and code new features in the same PR).

How to interpret the change counts in git diff output

  • One line was added: +1 -0
  • One line was deleted: +0 -1
  • One line was modified: +1 -1 (git diff doesn't know about modified, it will
    interpret that line like one addition plus one deletion)
  • Change percentiles: Change characteristics (addition, deletion, modification)
    of this PR in relation to all other PRs within the repository.


Was this comment helpful? 👍  :ok_hand:  :thumbsdown: (Email)
Customize PullRequestQuantifier for this repository.

@OndraMichal OndraMichal merged commit c05e6fb into main Nov 20, 2023
1 of 2 checks passed
@OndraMichal OndraMichal deleted the PailT_modify_stiffnesses_surface_table branch November 20, 2023 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants