xcfem / xc

finite element analysis package for civil engineering structures.
http://www.xcengineering.xyz/html_files/software.html
GNU General Public License v3.0
266 stars 54 forks source link

Problem imposing reduction of prestressing in a beam #55

Closed anaiortega closed 5 years ago

anaiortega commented 5 years ago

Hi,

I have a problem with a test I'm performing to check deflections in prestressed beams. The question is, at some point, I must impose a reduction of prestressing in a beam (from 6800 to 4500 kN/m2). I've tried two methods: 1) change the prestress in the material of each element of the cable, 2) impose an equivalent strain in the elements.

In repository work_in_progress there are three simple models to reproduce the issue:

test_deflection_prestressed_beam_01.- The initial stress in prestressing steel is set to 4500 kN/m2 -> The model outputs the right results (uz=40 mm & N=4500 kN) that match those from a direct calculation, but only because the final tension is directly assigned to the material in its definition statement.

test_deflection_prestressed_beam_02.- I set initial stress in prestressing steel = 6800 kN/m2. Before calculating I set a prestress of 4500 kN/m2 to the material of each element (lines 157-158). Results: uz=60.5 mm (as if prestress = 6800 kN/m2), N=4500 kN

test_deflection_prestressed_beam_03.- I set initial stress in prestressing steel = 6800 kN/m2. Before calculating I try to impose a strain in order to reduce the stress from 6800 kN/m2 to 4500 kN/m2 (lines 157-162) results: idem to case 1. The following error arises: ElementBodyLoad::applyLoad; el number of pointers no coincide con el de identifiers.

Any idea how to tackle it?

lcpt commented 5 years ago

Hi. In test_deflection_prestressed_beam_02.py you must update the state of the element after changing the value of the prestress (see line 159).

This is automatically done when the element is put in a mesh (in line 124 ) or if you modify the material state and you perform a non-linear analysis which will detect the lack of equilibrium due to the modification in the material stress.

I'll take a look to the third test as soon as I can.

anaiortega commented 5 years ago

It works!! Thank you very much!

lcpt commented 5 years ago

Well, I've solved the last one (test_deflection_prestressed_beam_03.py)

The problem was in line 155: https://github.com/xcfem/work_in_progress/blob/afecc9011a7a115d995d289ca08ceee743aa57fa/test_deflection_prestressed_beam_03.py#L155

there we add the load pattern to the domain and then we continue to define loads over the same load pattern. I've added a warning message about this to make easier to detect the problem.

If you delete line 155 and uncomment line 164: https://github.com/xcfem/work_in_progress/blob/afecc9011a7a115d995d289ca08ceee743aa57fa/test_deflection_prestressed_beam_03.py#L164

This problem disappears.

Anyway I don't know if the results are ok... but that is another question.

Regards. Luis.