Plotting of Concrete Reinforcement Ratio

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Thu May 24, 2018 7:15 pm

HarryvL wrote:
Thu May 24, 2018 5:38 pm
bernd wrote:
Thu May 24, 2018 4:07 pm
HarryvL wrote:
Thu May 24, 2018 10:11 am
I have not tried Bernd, but yes that's what is done internally in CCX. 1D and 2D elements get expanded into 3D first and then a beam or shell hinge is implemented through a knot. Not sure if/how this can be specified or controlled by the CCX user.

Alternatively you could try to connect two solids at a common edge? As solid element nodes have no rotational stiffness, this would effectively create a hinge.


We may missunderstood. About 1D and 2D analysis this is known ...

No I mean assumed you have a slab and a wall in 3D solid elements, but for some reason there should be a weak connection because there is only really rare reinforcement. Thus one needs to modell a hinge connection between them. But a hinge in 3D analysis is not possible. Thus my idea was to add a material between them with some weak youngs modulus. Or is it better to split the objects and connect the mesh faces by a special element? Or only connect the at an edge and not with a face.

bernd
I would try the last option first.

like this:

hinge.png
hinge.png (248.07 KiB) Viewed 297 times
Test103.fcstd
(99.15 KiB) Downloaded 16 times
User avatar
bernd
Posts: 8018
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Plotting of Concrete Reinforcement Ratio

Postby bernd » Thu May 24, 2018 7:42 pm

Since the geometry has to be changed it will be difficault to do this on a building by just ckicking the two objects and say hinged ... Mhh, good so far ... sorry for entering the topic with this hinged stuff.
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Thu May 24, 2018 9:10 pm

Massive 4x4x2m foundation block (C30/37) loaded by 10MN load. This time not so easy to work out reinforcement with traditional techniques ?!
Foundation_Block_Mesh.png
Foundation_Block_Mesh.png (207.22 KiB) Viewed 284 times
Foundation_Block_ReRa_x.png
Foundation_Block_ReRa_x.png (122.01 KiB) Viewed 284 times
Foundation_Block_ReRa_y.png
Foundation_Block_ReRa_y.png (127.13 KiB) Viewed 284 times
Foundation_Block_ReRa_z.png
Foundation_Block_ReRa_z.png (138.36 KiB) Viewed 284 times
Foundation_Block_MC.png
Foundation_Block_MC.png (33.94 KiB) Viewed 284 times

ReRa_x and ReRa_y should be symmetric, which they are. MC=0, so no shear or crushing failure.
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Thu May 24, 2018 9:25 pm

Foundation_Block_ReRa_x_2.png
Foundation_Block_ReRa_x_2.png (73.08 KiB) Viewed 282 times
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Thu May 24, 2018 9:54 pm

And a 4.0x4.0x0.15m simply supported floor with a 1.0x2.0m hole for a staircase, loaded by self weight and 4kN/m2 live load.

Floor_Weight_and_4KPa.png
Floor_Weight_and_4KPa.png (351.67 KiB) Viewed 279 times
Floor_ReRa_x_top.png
Floor_ReRa_x_top.png (82.86 KiB) Viewed 279 times
Floor_ReRa_y_top.png
Floor_ReRa_y_top.png (81.76 KiB) Viewed 279 times
Floor_ReRa_x_bot.png
Floor_ReRa_x_bot.png (84.99 KiB) Viewed 279 times
Floor_ReRa_y_bot.png
Floor_ReRa_y_bot.png (87.64 KiB) Viewed 279 times
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Fri May 25, 2018 12:16 am

bernd wrote:
Thu May 24, 2018 4:04 pm
basically yes, but you did not try the code, did you ;)

Code: Select all

if obj.Name[:13] == "SolidMaterial":
you can use

Code: Select all

if isDerivedFrom(obj, 'Fem::Material'):
we may sould make all this on an explizit example, this would be much more simple to understand ...
so this is how far I got with importToolsFem.py:

Code: Select all

import femmesh.meshtools
...
result_mesh = FreeCAD.ActiveDocument.Result_mesh
...
            for obj in FreeCAD.ActiveDocument.Objects:
                if obj.Name[:13] == "SolidMaterial":
#              if isDerivedFrom(obj, 'Fem::Material'):
                    if obj.Material.get('Name') != "Concrete":
                        print("NOT CONCRETE")
                        for ref in obj.References:
                            non_concrete_nodes = femmesh.meshtools.get_femnodes_by_refshape(result_mesh, ref)
                            for ncn in non_concrete_nodes:
                                results.ReinforcementRatio_x[ncn]  = 0.
                                results.ReinforcementRatio_y[ncn]  = 0.
                                results.ReinforcementRatio_z[ncn]  = 0.
                                results.MohrCoulomb[ncn] = 0.
                    else:
                        print("CONCRETE")
however, this gives the following error on loading the FRD:

Code: Select all

File "/home/harry/FC_MM/Mod/Fem/femmesh/meshtools.py", line 88, in get_femnodes_by_refshape
    nodes += femmesh.getNodesBySolid(r)
AttributeError: 'FeaturePython' object has no attribute 'getNodesBySolid'
I get the same result when I pass the FEMMeshGmsh.
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Fri May 25, 2018 6:45 am

@Bernd, I use your mixed mesh branch for this development. Could it have to do with that?
User avatar
bernd
Posts: 8018
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Plotting of Concrete Reinforcement Ratio

Postby bernd » Fri May 25, 2018 9:13 am

HarryvL wrote:
Fri May 25, 2018 6:45 am
@Bernd, I use your mixed mesh branch for this development. Could it have to do with that?
to be sure it is not this one I rebased it on FreeCAD master just ATM.
User avatar
bernd
Posts: 8018
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: Plotting of Concrete Reinforcement Ratio

Postby bernd » Fri May 25, 2018 9:55 am

try this ...

Code: Select all

import femmesh.meshtools
result_mesh = FreeCAD.ActiveDocument.Result_mesh.FemMesh
non_concrete_nodes = []

for obj in FreeCAD.ActiveDocument.Objects:
    if obj.isDerivedFrom('App::MaterialObjectPython'):
        if obj.Material.get('Name') != "CONCRETE":  
            print("NOT CONCRETE")
            for ref in obj.References:
                non_concrete_nodes = femmesh.meshtools.get_femnodes_by_refshape(result_mesh, ref)
        else:
            print("CONCRETE")
#

print(non_concrete_nodes)

Code: Select all

result_mesh = FreeCAD.ActiveDocument.Result_mesh
is the document object but you need to pass the FemMesh and not the document object. Thus:

Code: Select all

result_mesh = FreeCAD.ActiveDocument.Result_mesh.FemMesh
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: Plotting of Concrete Reinforcement Ratio

Postby HarryvL » Fri May 25, 2018 2:59 pm

Thanks Bernd. It works. Let the testing continue :D