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
Incorrect strain being returned from ConcreteServiceProfile #47
Comments
Note this also impacts the moment curvature analysis, as it would be failing at |
Note making the change suggested changing to EDIT - only for some configurations it seems. |
Hi @Agent6-6-6, thanks for bringing this one up! Again, sorry for the radio silence, have had a bit of a busy spell! I like this implementation better than what is currently there. A few thoughts looking at the existing concrete service profiles:
In summary, happy to shift to what you are suggesting, but interested in hearing what you think on the above before I implement the change 👍 |
@robbievanleeuwen I think I got around this by effectively repurposing the ultimate strain for the Basically don't initialise the ultimate strain so user doesn't need to provide it as an input, and at the end of developing the stress/strain profile simply set My main concern was if the user defined this parameter, then the So I think this can be closed out as most ultimate profiles take a user input for the ultimate strain and that is the cutoff for analysis even if you add more curve past that for interpolation purposes (If I'm understanding the small extension on The confined/unconfined profile I added in #40 is predominantly for Moment-Curvature analyses, not intended for ultimate analyses. |
Hi @robbievanleeuwen
Describe the bug
Under
StressStrainProfile
class theget_ultimate_compressive_strain
method returnsmax(self.strains)
Whereas under
ConcreteServiceProfile
class theget_ultimate_compressive_strain
method it returnsself.ultimate_strain
(believe this is incorrect)When dealing with service stress/strain profiles, some models for confined concrete mean much larger strains are possible than the defined
ultimate strain
of a material used for normal ultimate design, so returning this value fromConcreteServiceProfile
based classes is incorrect as may not even be a variable that's defined in the service stress/strain profile as it is irrelevant (this is my case).The various
get_ultimate_compressive_strain
methods should all returnmax(self.strains)
in my opinion? Note the same applies for returning the tension cases as well, should bemin(self.strains)
.For
ConcreteUltimateProfile
themax(self.strains)
is correct as ultimate profiles currently included naturally should be defined based on the maximumultimate_strain
being the maximum compressive strain based on the appropriate compression block formulation. It's never going to be higher for ultimate design checks, but for service checks concrete models can be higher.For example a service stress/strain relationship for confined concrete based on a Mander Confined Concrete model for a concrete that at Ultimate design would be limited to 0.003 strain, shows max strain at failure when considering the effects of confinement could be substantially higher (in this case for the service profile the ultimate_strain variable is irrelevant and can have
init=false
applied in child classes which causes an error when you use theget_ultimate_compressive_strain
method fromConcreteServiceProfile
):-Hopefully that makes sense!
The text was updated successfully, but these errors were encountered: