User Tools

Site Tools


full_syntax

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
full_syntax [2018/03/19 22:00]
marijn.nijenhuis
full_syntax [2023/11/09 22:27] (current)
marijn.nijenhuis [5. Optional]
Line 36: Line 36:
  
 **Boundary conditions:** **Boundary conditions:**
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^ ^ Field ^ Value ^ Description ^
 | ''fix'' | ''true'' | Fix both the position and orientation of the node. | | ''fix'' | ''true'' | Fix both the position and orientation of the node. |
Line 45: Line 46:
  
 **Inertia:** **Inertia:**
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^ ^ Field ^ Value ^ Description ^
 | ''mass'' | double | Point mass (in unit kg) assigned to node. | | ''mass'' | double | Point mass (in unit kg) assigned to node. |
-| ''mominertia'' | 1x6 vector | Moment of inertia (in unit kgm<sup>2</sup>) applied to node (''[I<sub>xx</sub> I<sub>xy</sub> I<sub>xz</sub> I<sub>yy</sub> I<sub>yz</sub> I<sub>zz</sub>]''). Note the tensor components are needed, so I<sub>xy</sub>,I<sub>xz</sub> an I<sub>yz</sub> represent the negative of the products of inertia |+| ''mominertia'' | 1x6 vector | Moment of inertia (in unit kgm<sup>2</sup>) applied to node (''[I<sub>xx</sub> I<sub>xy</sub> I<sub>xz</sub> I<sub>yy</sub> I<sub>yz</sub> I<sub>zz</sub>]''). Note the tensor components are needed, so ''I<sub>xy</sub>''''I<sub>xz</sub>'' and ''I<sub>yz</sub>'' represent the negative of the products of inertia|
  
 **Prescribed input displacement:** **Prescribed input displacement:**
 +{{tablelayout?colwidth="140px,80px,-"}}
 ^ Field ^ Value ^ Description ^ ^ Field ^ Value ^ Description ^
 | ''displ_x'' | double | Prescribed displacement (in unit m) in ''x''-direction. Value is the target ''x''-coordinate of the node position (in global frame).  | | ''displ_x'' | double | Prescribed displacement (in unit m) in ''x''-direction. Value is the target ''x''-coordinate of the node position (in global frame).  |
Line 58: Line 61:
 | ''displ_initial_z'' | double | Prescribed initial<sup>*</sup> displacement (in unit m) in ''z''-direction. Value is the target ''z''-coordinate of the node position (in global frame). | | ''displ_initial_z'' | double | Prescribed initial<sup>*</sup> displacement (in unit m) in ''z''-direction. Value is the target ''z''-coordinate of the node position (in global frame). |
  
 +**Prescribed rotation:**
 +{{tablelayout?colwidth="110px,100px,-"}}
 +^ Field ^ Value ^ Description ^
 +| ''rot'' | 1x4 vector | Prescribed rotation. Values represent the target orientation of the node in 3-D space, according to the [[https://en.wikipedia.org/wiki/Rotation_formalisms_in_three_dimensions#Euler_axis_and_angle_.28rotation_vector.29|axis-angle notation]]. The first value represents the rotation angle (in radians) and the second to fourth values the normalized axis of rotation, all with respect to the global frame. Note that this input complete defines and constrains the orientation of the node, i.e. no other simultaneous rotations of the node are possible. |
 +| ''rot_initial'' | 1x4 vector | Prescribed initial<sup>*</sup> rotation. Values represent the target orientation of the node in 3-D space, according to the [[https://en.wikipedia.org/wiki/Rotation_formalisms_in_three_dimensions#Euler_axis_and_angle_.28rotation_vector.29|axis-angle notation]]. The first value represents the rotation angle (in radians) and the second to fourth values the normalized axis of rotation, all with respect to the global frame. Note that this input complete defines and constrains the orientation of the node, i.e. no other simultaneous rotations of the node are possible. |
  
 **Applied loads:** **Applied loads:**
 +{{tablelayout?colwidth="140px,100px,-"}}
 ^ Field ^ Value ^ Description ^ ^ Field ^ Value ^ Description ^
 | ''force'' | 1x3 vector | Force applied to node. Values represent the force components (in unit N) in the ''x''-, ''y''-, and ''z''-direction. | | ''force'' | 1x3 vector | Force applied to node. Values represent the force components (in unit N) in the ''x''-, ''y''-, and ''z''-direction. |
Line 65: Line 74:
 | ''moment'' | 1x3 vector | Moment applied to node. Values represent the moment components (in unit Nm) about the ''x''-, ''y''-, and ''z''-axes. | | ''moment'' | 1x3 vector | Moment applied to node. Values represent the moment components (in unit Nm) about the ''x''-, ''y''-, and ''z''-axes. |
 | ''moment_initial'' | 1x3 vector | Initial<sup>*</sup> moment applied to node. Values represent the moment components (in unit Nm) about the ''x''-, ''y''-, and ''z''-axes. | | ''moment_initial'' | 1x3 vector | Initial<sup>*</sup> moment applied to node. Values represent the moment components (in unit Nm) about the ''x''-, ''y''-, and ''z''-axes. |
 +
 +**State-space representation:**
 +{{tablelayout?colwidth="120px,100px,-"}}
 +^ Field ^ Value ^ Description ^
 +| ''transfer_in'' | '''force_x''' | Force input in ''x''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''force_y''' | Force input in ''y''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''force_z''' | Force input in ''z''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ''transfer_out'' | '''displ_x''' | Displacement output in ''x''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''displ_y''' | Displacement output in ''y''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''displ_z''' | Displacement output in ''z''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''veloc_x''' | Velocity output in ''x''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''veloc_y''' | Velocity output in ''y''-direction on node for state-space equations. See ''opt.transfer''. |
 +| ::: | '''veloc_z''' | Velocity output in ''z''-direction on node for state-space equations. See ''opt.transfer''. |
 +
  
 ***) Regarding the //initial// forces, moments, displacements and rotations:** ***) Regarding the //initial// forces, moments, displacements and rotations:**
Line 75: Line 98:
   - the last load step is due to both the full initial and full standard load.   - the last load step is due to both the full initial and full standard load.
  
-The same holds for prescribing //standard// displacement (''displ_{x,y,z}''and //initial// displacement (''displ_initial_{x,y,z}'').+The same holds for prescribing //standard// displacement (''displ_{x,y,z}'')//initial// displacement (''displ_initial_{x,y,z}''), //standard// rotation (''rot'') and //initial// rotation (''rot_initial'').
 ==== 4. Element properties ==== ==== 4. Element properties ====
  
Line 82: Line 105:
 The usage is ''eprops(i).field = value;'' to assign property ''field'' with value ''value'' to set ''i''. The following list contains an overview of all possible fields. The usage is ''eprops(i).field = value;'' to assign property ''field'' with value ''value'' to set ''i''. The following list contains an overview of all possible fields.
  
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^  ^ Field ^ Value ^ Description ^ 
 | ''elems'' (required) | 1×n vector | Numbers of elements to which the properties apply.|  | ''elems'' (required) | 1×n vector | Numbers of elements to which the properties apply.| 
 | ''flex'' | 1×n vector| Flexibility. Values represent beam deformation modes that are to be considered flexible (**1**: elongation, **2**: torsion: **3** and **4**: out-of-plane bending, **5** and **6**: in-plane bending). For example: ''[2 5 6]'' allows flexibility in torsion and in-plane bending.| | ''flex'' | 1×n vector| Flexibility. Values represent beam deformation modes that are to be considered flexible (**1**: elongation, **2**: torsion: **3** and **4**: out-of-plane bending, **5** and **6**: in-plane bending). For example: ''[2 5 6]'' allows flexibility in torsion and in-plane bending.|
 | ''nbeams'' | integer | Number of beam elements used in the simulation. If omitted, the default value 1 is used. | | ''nbeams'' | integer | Number of beam elements used in the simulation. If omitted, the default value 1 is used. |
 +| ''cw'' | ''true'' | Enable the effective increase in torsional stiffness due to constrained warping at the nodes of the element. |
  
 **Material constants**: **Material constants**:
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^  ^ Field ^ Value ^ Description ^ 
 | ''emod''<sup>*1</sup> | double | Young's modulus (in unit Pa). | | ''emod''<sup>*1</sup> | double | Young's modulus (in unit Pa). |
Line 94: Line 120:
  
 **Geometry and dimensions**: **Geometry and dimensions**:
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^  ^ Field ^ Value ^ Description ^ 
 | ''cshape''<sup>*1,2</sup> | '''rect''' | Rectangular cross-sectional shape. Requires ''dim'' and ''orien'' field. | | ''cshape''<sup>*1,2</sup> | '''rect''' | Rectangular cross-sectional shape. Requires ''dim'' and ''orien'' field. |
Line 102: Line 129:
  
 **Visual appearance** (these properties only affect the visualization, not the simulation): **Visual appearance** (these properties only affect the visualization, not the simulation):
 +{{tablelayout?colwidth="100px,100px,-"}}
 ^ Field ^ Value ^ Description ^  ^ Field ^ Value ^ Description ^ 
 | ''color'' | 1x3 vector| Color of element. Values represent rgb color values between 0 and 1, or between 0 and 255. If any of the values specified are larger than 1, the 0-255 map is used. Otherwise, the 0-1 map is used. | | ''color'' | 1x3 vector| Color of element. Values represent rgb color values between 0 and 1, or between 0 and 255. If any of the values specified are larger than 1, the 0-255 map is used. Otherwise, the 0-1 map is used. |
Line 125: Line 153:
 ''opt'' is a structure array for //specifying optional input//. The usage is ''opt.field = value;'' to assign value ''value'' to property ''field'' . The following list contains an overview of all possible fields. ''opt'' is a structure array for //specifying optional input//. The usage is ''opt.field = value;'' to assign value ''value'' to property ''field'' . The following list contains an overview of all possible fields.
  
 +{{tablelayout?colwidth="160px,240px,-"}}
 ^ Field ^ Value ^ Description ^  ^ Field ^ Value ^ Description ^ 
 | ''filename'' | string | Filename of the data files involved in the SPACAR simulation. If omitted, filenname 'spacar_file' is used. | | ''filename'' | string | Filename of the data files involved in the SPACAR simulation. If omitted, filenname 'spacar_file' is used. |
 | ''silent'' | ''true'' | Activation of 'silent' mode of SPACAR Light. In the silent mode, the input arguments (''nodes'', ''elements'', ''nprops'', ''eprops'', ''rls'') are not validated and not checked for errors (improving speed). Also, visualization after simulation is turned off. This feature can be useful when e.g. running a lot of SPACAR Light simulations in an optimization or iteration loop. | | ''silent'' | ''true'' | Activation of 'silent' mode of SPACAR Light. In the silent mode, the input arguments (''nodes'', ''elements'', ''nprops'', ''eprops'', ''rls'') are not validated and not checked for errors (improving speed). Also, visualization after simulation is turned off. This feature can be useful when e.g. running a lot of SPACAR Light simulations in an optimization or iteration loop. |
-| ''calcbuck'' | ''true'' | Calculation of buckling behavior. Multipliers with respect to the combined applied load are returned. Input displacements cannot be used with this option. It is recommended to only apply a single force or moment to the system. Note that the loads ''nprops(i).force'' and ''nprops(i).moment'' are applied in (linearly increasing) steps: they only reach the user-specified value at the last step. The multipliers are calculated with respect to the current load at each of these steps. |+| ''calcbuck'' | ''true'' | Calculation of buckling loads. Multipliers with respect to the combined applied load are returned. It is recommended to only apply a single force or moment to the system. Whenever input displacements or rotations are used, the multipliers are also with respect to the equivalent reaction loads. Note that the loads ''nprops(i).force'' and ''nprops(i).moment'' are applied in (linearly increasing) steps: they only reach the user-specified value at the last step. The multipliers are calculated with respect to the current load at each of these steps. | 
 +| ''calccompl'' | ''false'' | Disable calculation of compliance matrices of the nodes (may improve calculation time).|
 | ''gravity'' | 1x3 vector | Loads due to gravity. Values represent the components of the gravitational acceleration in ''x''-, ''y''-, and ''z''-direction (in unit m/s<sup>2</sup>). For example: ''[0 0 -9.81]''. | | ''gravity'' | 1x3 vector | Loads due to gravity. Values represent the components of the gravitational acceleration in ''x''-, ''y''-, and ''z''-direction (in unit m/s<sup>2</sup>). For example: ''[0 0 -9.81]''. |
 | ''loadsteps'' | integer | Number of load steps used in the simulation and visualization. If not specified, the default number of 10 load steps is used. For creating smooth plots and visualizations, you may want to increase this number. For optimization purposes, you may want to reduce this number to increase computational speed. For well-conditioned problems, a single load step is still feasible. For ill-conditioned problems (involving large loads, large prescribed displacements, or buckling ), a larger number of load steps is required for the simulation to converge. | | ''loadsteps'' | integer | Number of load steps used in the simulation and visualization. If not specified, the default number of 10 load steps is used. For creating smooth plots and visualizations, you may want to increase this number. For optimization purposes, you may want to reduce this number to increase computational speed. For well-conditioned problems, a single load step is still feasible. For ill-conditioned problems (involving large loads, large prescribed displacements, or buckling ), a larger number of load steps is required for the simulation to converge. |
 | ''rls(i).def'' | 1×n vector| Deformation modes of element ''i'' that are to be considered released (**1**: elongation, **2**: torsion: **3** and **4**: out-of-plane bending, **5** and **6**: in-plane bending). For example: ''opt.rls(1).def = [2 3 4]'' releases torsion and out-of-plane bending deformations of element 1.| | ''rls(i).def'' | 1×n vector| Deformation modes of element ''i'' that are to be considered released (**1**: elongation, **2**: torsion: **3** and **4**: out-of-plane bending, **5** and **6**: in-plane bending). For example: ''opt.rls(1).def = [2 3 4]'' releases torsion and out-of-plane bending deformations of element 1.|
 | ''showinputonly'' | ''true'' | Only create a visualization of the defined nodes and elements, without running any simulation. Useful for debugging connectivity and inspecting node and element numbering. | | ''showinputonly'' | ''true'' | Only create a visualization of the defined nodes and elements, without running any simulation. Useful for debugging connectivity and inspecting node and element numbering. |
 +| ''transfer'' | ''true'' | Calculation of state-space equations. Requires specification of at least one input and one output, by means of ''nprops(i).transfer_in'' and ''nprops(i).transfer_out''. Cannot be used with applied forces, applied moments, prescribed displacements, and buckling load multipliers. |
 +| ::: | 1×2 cell | Calculation of state-space equations that include relative damping for all modes of the system. (This value only affects the output in ''out.statespace''; the eigenfrequency output in ''out.freq'' and Spavisual remain undamped.) For example: ''opt.transfer = {true 0.01}'' calculates state-space equations with relative damping 0.01. |
 +| ''customvis'' | ''{'modeshape','maximum 20'}'' | The maximum number of mode shapes, in this case 20, that are shown in the Spavisual window. If omitted, the default value of 10 is used. |
 +| ''spavisual'' | ''false'' | Do not show the Spavisual window after a simulation. |
 +| ''rigidstress'' | ''true'' | Consider the stress in rigid elements when computing the maximum Von Mises stress in ''opt.stressmax''. By default, this option is false and stress in rigid elements is ignored. |
 +| ''stressperelement'' | ''true'' | Compute the maximum Von Mises stress per element, stored in ''out.step(i).element(j).stressmax'' for element ''j'' at step ''i''. |
 ===== Output Arguments ===== ===== Output Arguments =====
  
Line 144: Line 180:
 In the fields of the ''out'' structure (unless otherwise noted), each //column// contains data for a certain load step. The following list describes what those columns represent. (The total number of load steps is n<sub>s</sub>.) In the fields of the ''out'' structure (unless otherwise noted), each //column// contains data for a certain load step. The following list describes what those columns represent. (The total number of load steps is n<sub>s</sub>.)
  
 +{{tablelayout?colwidth="-,140px,140px,-"}}
 ^ Field ^^ Value ^ Description of column representation ^  ^ Field ^^ Value ^ Description of column representation ^ 
-| ''stressmax'' || 1×n<sub>s</sub> vector | Maximum stress in the system (in unit Pa). |+| ''stressmax'' || 1×n<sub>s</sub> vector | Maximum stress in the system (in unit Pa). By default, only nonrigid elements are considered. See ''opt.rigidstress''. |
 | ''freq'' || n<sub>ndof</sub>×n<sub>s</sub> matrix| Natural frequencies of the system (in unit Hz). Values are sorted from low to high. | | ''freq'' || n<sub>ndof</sub>×n<sub>s</sub> matrix| Natural frequencies of the system (in unit Hz). Values are sorted from low to high. |
 | ''buck'' || n<sub>ndof</sub>×n<sub>s</sub> matrix| Buckling load multipliers of the system. Values are sorted from low to high. Note: load multipliers are only calculated if ''opt.calcbuck = true''.| | ''buck'' || n<sub>ndof</sub>×n<sub>s</sub> matrix| Buckling load multipliers of the system. Values are sorted from low to high. Note: load multipliers are only calculated if ''opt.calcbuck = true''.|
Line 157: Line 194:
 | | ''.CMglob'' | 6x6×n<sub>s</sub> matrix| Compliance matrix of node ''i'' in global frame (fixed frame). This is an array of three dimensions. The load step varies along the third dimension. | | | ''.CMglob'' | 6x6×n<sub>s</sub> matrix| Compliance matrix of node ''i'' in global frame (fixed frame). This is an array of three dimensions. The load step varies along the third dimension. |
 | | ''.CMloc'' | 6x6×n<sub>s</sub> matrix| Compliance matrix of node ''i'' in local frame (co-rotational with node). This is an array of three dimensions. The load step varies along the third dimension. | | | ''.CMloc'' | 6x6×n<sub>s</sub> matrix| Compliance matrix of node ''i'' in local frame (co-rotational with node). This is an array of three dimensions. The load step varies along the third dimension. |
 +| ''statespace'' || state-space object | State-space representation of the system. This is only calculated when ''opt.transfer'' is used. Requires the ''ss'' command in MATLAB (see ''doc ss''), e.g. from the Control System Toolbox.|
 | ''version'' || string | SPACAR Light version number. | | ''version'' || string | SPACAR Light version number. |
 | ''ndof'' || integer | Number of degrees of freedom. | | ''ndof'' || integer | Number of degrees of freedom. |
full_syntax.1521493231.txt.gz · Last modified: 2018/03/19 22:00 by marijn.nijenhuis