[MBDyn-users] Fwd: Was:Curved membranes to fit straight beams => relax membrane

MBDyn users list mbdyn-users at mbdyn.org
Mon Feb 14 23:18:19 CET 2022


Right, I didn't notice the wrong z displacement.
What I think is going on is that you are increasing the compression of the membrane
while you are increasing gravity. Since the membrane stiffness is null the membrane immediately
"buckles". Unfortunately it buckles on the wrong side (positive z). After that, since you have very
few elements, is not able to go to the other side by buckling, even if the gravity is now different from zero,
and works as an arc.

You can solve this by first applying the gravity and then moving the nodes.
In this way the Sail is already bent on the "right" side.
With a (much) refined mesh you likely don't need this (it should be able to "snap back" to the right side
as soon as the gravity increases), but I've not tried, and
you could have to deal with small time steps and/or convergence problems.

Better to move the nodes with a (1-cosine), this helps avoiding convergence issues.
Keep the asymptotic radius equal to 0, to damp as much as possible the dynamic:
what you were seeing is a likely a dynamic phenomenon. When you want to understand what is going on
get rid of

output frequency: 10;

and plot the vertical displacement of nodes as time histories, with your model you'll likely
see a lot of oscillations.

Working model attached. Unfortunately there is still some dynamics, and I also had to reduce the time step
down to 1E-3.

Let me know,

Marco

-------------- next part --------------
/* 	Test MBDyn Membrane + mast + batten
 *	5x5 nodes generating 16 membranes = Sail
 *	One side of the square clampled (Boom)
 *	Opposite side is a beam = mast
 *	Total Joints links nodes on the sail to corresponding node on the mast
 *	and decrease the distance between those nodes.
 */

begin: data;
	problem: initial value;
end: data;

begin: initial value;
	initial time: 0;
	final time: 2.;
	time step: 1.e-3;
	method: ms, 0.;
	tolerance: 1e-5;
	max iterations: 10;
        derivatives max iterations: 10;
	threads: disable;
        linear solver: umfpack, cc;
end: initial value;

begin: control data;
	structural nodes: 30;
	beams: 2;
	plates: 16;
        genels: 15;
        joints: 10;
	rigid bodies: 25;
	
	# Define gravity to have some forces applied to the Membrane nodes
	gravity;

	#output frequency: 100;
end: control data;

begin: nodes;

# Pure Membrane nodes are declared as "dynamic displacement". Nodes that are fixed to beam nodes and nodes
# to be controlled by Total Joint are declared as structural dynamic nodes

structural: 1, dynamic, position, 0.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 2, dynamic displacement, position, 0.0, 1.0, 0.0, velocity, null;
structural: 3, dynamic displacement, position, 0.0, 2.0, 0.0, velocity, null;
structural: 4, dynamic displacement, position, 0.0, 3.0, 0.0, velocity, null;
structural: 5, dynamic displacement, position, 0.0, 4.0, 0.0, velocity, null;

structural: 6, dynamic, position, 1.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 7, dynamic displacement, position, 1.0, 1.0, 0.0, velocity, null;
structural: 8, dynamic displacement, position, 1.0, 2.0, 0.0, velocity, null;
structural: 9, dynamic displacement, position, 1.0, 3.0, 0.0, velocity, null;
structural: 10, dynamic displacement, position, 1.0, 4.0, 0.0, velocity, null;

structural: 11, dynamic, position, 2.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 12, dynamic displacement, position, 2.0, 1.0, 0.0, velocity, null;
structural: 13, dynamic displacement, position, 2.0, 2.0, 0.0, velocity, null;
structural: 14, dynamic displacement, position, 2.0, 3.0, 0.0, velocity, null;
structural: 15, dynamic displacement, position, 2.0, 4.0, 0.0, velocity, null;

structural: 16, dynamic, position, 3.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 17, dynamic displacement, position, 3.0, 1.0, 0.0, velocity, null;
structural: 18, dynamic displacement, position, 3.0, 2.0, 0.0, velocity, null;
structural: 19, dynamic displacement, position, 3.0, 3.0, 0.0, velocity, null;
structural: 20, dynamic displacement, position, 3.0, 4.0, 0.0, velocity, null;

structural: 21, dynamic, position, 4.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 22, dynamic displacement, position, 4.0, 1.0, 0.0, velocity, null;
structural: 23, dynamic displacement, position, 4.0, 2.0, 0.0, velocity, null;
structural: 24, dynamic displacement, position, 4.0, 3.0, 0.0, velocity, null;
structural: 25, dynamic displacement, position, 4.0, 4.0, 0.0, velocity, null;


# Mast declaration:
# Additional nodes 1-6-11-16-21 have to be declared separatly
structural: 101, dynamic, position, 0.0, 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 106, dynamic, position, 1., 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 111, dynamic, position, 2., 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 116, dynamic, position, 3., 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;
structural: 121, dynamic, position, 4., 0.0, 0.0, orientation, eye, velocity, null, angular velocity, null;

end: nodes;

begin: elements;

#Node 1, as mast base and boom end is fully constrained

joint: 2001, total pin joint,
	101,
		position, null,
		position orientation, eye,
		rotation orientation, eye,
	position, 0.0, 0.0, 0.0,
	position orientation, eye,
	rotation orientation, eye,
	position constraint, active, active, active, null,
	orientation constraint, active, active, active, null;
	
joint: 2002, total pin joint,
	106,
		position, null,
		position orientation, eye,
		rotation orientation, eye,
	position, 1.0, 0.0, 0.0,
	position orientation, eye,
	rotation orientation, eye,
	position constraint, active, active, active, null,
	orientation constraint, active, active, active, null;
	
joint: 2003, total pin joint,
	111,
		position, null,
		position orientation, eye,
		rotation orientation, eye,
	position, 2.0, 0.0, 0.0,
	position orientation, eye,
	rotation orientation, eye,
	position constraint, active, active, active, null,
	orientation constraint, active, active, active, null;
	
	
joint: 2004, total pin joint,
	116,
		position, null,
		position orientation, eye,
		rotation orientation, eye,
	position, 3.0, 0.0, 0.0,
	position orientation, eye,
	rotation orientation, eye,
	position constraint, active, active, active, null,
	orientation constraint, active, active, active, null;

joint: 2005, total pin joint,
	121,
		position, null,
		position orientation, eye,
		rotation orientation, eye,
	position, 4.0, 0.0, 0.0,
	position orientation, eye,
	rotation orientation, eye,
	position constraint, active, active, active, null,
	orientation constraint, active, active, active, null;

# The Boom is clamped (Opposite row of nodes)

genel: 2004, clamp, 5, structural, 1, algebraic, 0.;
genel: 2005, clamp, 5, structural, 2, algebraic, 4.;
genel: 2006, clamp, 5, structural, 3, algebraic, 0.;

genel: 2007, clamp, 10, structural, 1, algebraic, 1.;
genel: 2008, clamp, 10, structural, 2, algebraic, 4.;
genel: 2009, clamp, 10, structural, 3, algebraic, 0.;

genel: 2010, clamp, 15, structural, 1, algebraic, 2.;
genel: 2011, clamp, 15, structural, 2, algebraic, 4.;
genel: 2012, clamp, 15, structural, 3, algebraic, 0.;

genel: 2013, clamp, 20, structural, 1, algebraic, 3.;
genel: 2014, clamp, 20, structural, 2, algebraic, 4.;
genel: 2015, clamp, 20, structural, 3, algebraic, 0.;

genel: 2016, clamp, 25, structural, 1, algebraic, 4.;
genel: 2017, clamp, 25, structural, 2, algebraic, 4.;
genel: 2018, clamp, 25, structural, 3, algebraic, 0.;

# Total joints to "sew" the sail to the mast progressively during initialization sequence
#controls distance between Mast node and Sail/membrane node
 
  set: real MoveDist = 0.5;
 
  joint: 1,
     total joint,
     101,			#mast node 106
   	position, null,
     1,			#membrane node 6
        position, null,
     position constraint, active, active, active,
	single, 0., 1., 0., #move in -Y direction
		#const, 0.,
		#ramp, MoveDist/1., 1., 2., 0.,
		cosine, 1.,pi,MoveDist/2.,half,0.,
	orientation constraint, active, active, active,
    null;	 


   joint: 2,
     total joint,
     106,			#mast node 106
   	position, null,
     6,			#membrane node 6
        position, null,
     position constraint, active, active, active,
	single, 0., 1., 0., #move in -Y direction
		#const, 0.,
		#ramp, MoveDist/1., 1., 2., 0.,
		cosine, 1.,pi,MoveDist/2.,half,0.,
	orientation constraint, active, active, active,
    null;	 

   joint: 3,
     total joint,
     111,			#mast node 106
   	position, null,
     11,			#membrane node 6
        position, null,
     position constraint, active, active, active,
	single, 0., 1., 0., #move in -Y direction
		#const, 0.,
		#ramp, MoveDist/1., 1., 2., 0.,
		cosine, 1.,pi,MoveDist/2.,half,0.,
	orientation constraint, active, active, active,
    null;	 

   joint: 4,
     total joint,
     116,			#mast node 106
   	position, null,
     16,			#membrane node 6
        position, null,
     position constraint, active, active, active,
	single, 0., 1., 0., #move in -Y direction
		#const, 0.,
		#ramp, MoveDist/1., 1., 2., 0.,
		cosine, 1.,pi,MoveDist/2.,half,0.,
	orientation constraint, active, active, active,
    null;	 

   joint: 5,
     total joint,
     121,			#mast node 106
   	position, null,
     21,			#membrane node 6
        position, null,
     position constraint, active, active, active,
	single, 0., 1., 0., #move in -Y direction
		#const, 0.,
		#ramp, MoveDist/1., 1., 2., 0.,
		cosine, 1.,pi,MoveDist/2.,half,0.,
	orientation constraint, active, active, active,
    null;	 


#Mass on each node

body: 1001, 1, 0.01, null, diag, 0., 0., 0.;
body: 1002, 2, 0.01;
body: 1003, 3, 0.01;
body: 1004, 4, 0.01;
body: 1005, 5, 0.01;
body: 1006, 6, 0.01, null, diag, 0., 0., 0.;
body: 1007, 7, 0.01;
body: 1008, 8, 0.01;
body: 1009, 9, 0.01;
body: 1010, 10, 0.01;
body: 1011, 11, 0.01, null, diag, 0., 0., 0.;
body: 1012, 12, 0.01;
body: 1013, 13, 0.01;
body: 1014, 14, 0.01;
body: 1015, 15, 0.01;
body: 1016, 16, 0.01, null, diag, 0., 0., 0.;
body: 1017, 17, 0.01;
body: 1018, 18, 0.01;
body: 1019, 19, 0.01;
body: 1020, 20, 0.01;
body: 1021, 21, 0.01, null, diag, 0., 0., 0.;
body: 1022, 22, 0.01;
body: 1023, 23, 0.01;
body: 1024, 24, 0.01;
body: 1025, 25, 0.01;


set: real MembraneThickness = 1.;
set: real MembraneE = 3.e9;

#Definition of the membranes 4x4 square

membrane4eas: 0,
	1, 6, 7, 2,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;
		
membrane4eas: 1,
	2, 7, 8, 3,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 2,
	3, 8, 9, 4,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;
	
membrane4eas: 3,
	4, 9, 10, 5,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 4,
	6, 11, 12, 7,
	isotropic,
		E, 30.0,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 5,
	7, 12, 13, 8,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 6,
	8, 13, 14, 9,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;
	
membrane4eas: 7,
	9, 14, 15, 10,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 8,
	11, 16, 17, 12,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 9,
	12, 17, 18, 13,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 10,
	13, 18, 19, 14,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 11,
	14, 19, 20, 15,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 12,
	16, 21, 22, 17,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 13,
	17, 22, 23, 18,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

membrane4eas: 14,
	18, 23, 24, 19,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;
		
membrane4eas: 15,
	19, 24, 25, 20,
	isotropic,
		E, MembraneE,
		nu, 0.34,
		thickness, MembraneThickness;

	#Definition of the mast (left side of the square)

	beam: 2000,
		101, null,
		106, null,
		111, null,
		eye,
		linear elastic generic,
			diag, 1.e7, 1.e7, 1.e7, 1.e4, 1.e4, 1.e5,
		same,
		same;

	beam: 2001,
		111, null,
		116, null,
		121, null,
		eye,
		linear elastic generic,
			diag, 1.e7, 1.e7, 1.e7, 1.e4, 1.e4, 1.e5,
		same,
		same;

	
	gravity: uniform, 0., 0., -1., ramp, 9.81, 0., 1., 0.;

end: elements;



More information about the MBDyn-users mailing list