CLOAD and DLOAD

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: CLOAD and DLOAD

Post by bernd »

PrzemoF wrote:... But I'm not going to work on it now - I have too many things half-finished to start another one :)
+1 since I do not really need it. But I'd be happy to help in testing if someone implements it.
crobar
Posts: 160
Joined: Fri Aug 29, 2014 1:26 pm

Re: CLOAD and DLOAD

Post by crobar »

bernd wrote:CalculiX part:
We could get the direction vector for every FemMesh face and use it with CLOAD. What do you think ?!?
I'd also prefer you finished off the many good things already done, before you started my request, just thought I'd mention it so its at the back of the dev's minds.

The same tool might be useful to easily apply, say, a frictional force to a face, e.g. in a sliding bearing, or wind loading to a building.

I'd also try to help with testing, I'm building FreeCAD from the git sources fairly regularly (even had one tiny pull request merged).
crobar
Posts: 160
Joined: Fri Aug 29, 2014 1:26 pm

Re: CLOAD and DLOAD

Post by crobar »

I have a couple of python functions which might useful for the tangential force direction calculation. These are specifically for a torque on a cylindrical surface, but have parts that may be more generally useful (e.g. rotating a vector 90 degrees). They calculate appropriate forces in the X and Y plane for a torque by rotating a vector pointing from the centre of the cylinder to the point on the surface cylinder. I use these in Code_Aster to apply forces like these.

Code: Select all

def torqueFX (tq_total, x, y, Rf, l):
    """
    Calculate x component of torque on cylinder surface
    
    tq_total is the applied torque

    x and y are locations on the cylinder surface

    Rf is the radius of the cylinder

    l is the length of the cylinder

    """

    Fperarea = tq_total / (2 * pi * (Rf**2) * l);

    theta = atan2 (y,x)

    # The tangential force is the force pointing in the
    # direction of the radial position rotated by 90 degrees.
    # To rotate a vector 90 degrees, we can simply replace
    # (x, y) with (-y, x)
    Fx = -Fperarea * sin (theta);

    return Fx

def torqueFY (tq_total, x, y, Rf, l):
    """
    Calculate y component of torque on cylinder surface
    
    tq_total is the applied torque

    x and y are locations on the cylinder surface

    Rf is the radius of the cylinder

    l is the length of the cylinder

    """

    Fperarea = tq_total / (2 * pi * (Rf**2) * l);

    theta = atan2 (y,x)

    # The tangential force is the force pointing in the
    # direction of the radial position rotated by 90 degrees.
    # To rotate a vector 90 degrees, we can simply replace
    # (x, y) with (-y, x), so here we return
    Fy = Fperarea * cos (theta);

    return Fy
Post Reply