Main Content

interface

Specify physical connections between components of mechss model

Since R2020b

    Description

    sysCon = interface(sys,C1,IC1,C2,IC2) specifies physical couplings between components C1 and C2 in the second-order sparse model sys. IC1 and IC2 contain the indices of the coupled degrees of freedom (DOFs) relative to the DOFs of C1 and C2. The physical interface is assumed rigid and satisfies the standard consistency and equilibrium conditions. sysCon is the resultant model with the specified physical connections. Use showStateInfo to get the list of all available components of sys.

    example

    sysCon = interface(sys,C,IC) specifies that component C interfaces with the ground. Connecting the degrees of freedom q of C to the ground amounts to the zero displacement constraint q(IC) = 0.

    example

    sysCon = interface(___,KI,CI) further specifies the stiffness KI and damping CI for nonrigid interfaces.

    sysCon = interface(___,method) specifies the assembly method. By default, method = 'dual' and the function uses the dual-assembly method of physical coupling. Set method = 'primal' to use the primal-assembly method of physical coupling. For more information, see Algorithms.

    Examples

    collapse all

    For this example, consider a structural model that consists of two square plates connected with pillars at each vertex as depicted in the figure below. The lower plate is attached rigidly to the ground while the pillars are attached rigidly to each vertex of the square plate.

    plate_pillar_assembled-01-01.png

    Load the finite element model matrices contained in platePillarModel.mat and create the sparse second-order model representing the above system.

    load('platePillarModel.mat')
    model = ...
       mechss(M1,[],K1,B1,F1,'Name','Plate1') + ...
       mechss(M2,[],K2,B2,F2,'Name','Plate2') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar3') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar4') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar5') + ...
       mechss(Mp,[],Kp,Bp,Fp,'Name','Pillar6');
    sys = model;

    Use showStateInfo to examine the components of the mechss model object.

    showStateInfo(sys)
    The state groups are:
    
        Type        Name      Size
      ----------------------------
      Component    Plate1     2646
      Component    Plate2     2646
      Component    Pillar3     132
      Component    Pillar4     132
      Component    Pillar5     132
      Component    Pillar6     132
    

    Now, load the interfaced degree of freedom (DOF) index data from dofData.mat and use interface to create the physical connections between the two plates and the four pillars. dofs is a 6x7 cell array where the first two rows contain DOF index data for the first and second plates while the remaining four rows contain index data for the four pillars. By default, the function uses dual-assembly method of physical coupling.

    load('dofData.mat','dofs')
    for i=3:6
       sys = interface(sys,"Plate1",dofs{1,i},"Pillar"+i,dofs{i,1});
       sys = interface(sys,"Plate2",dofs{2,i},"Pillar"+i,dofs{i,2});
    end

    Specify connection between the bottom plate and the ground.

    sysConDual = interface(sys,"Plate2",dofs{2,7});

    Use showStateInfo to confirm the physical interfaces.

    showStateInfo(sysConDual)
    The state groups are:
    
        Type            Name         Size
      -----------------------------------
      Component        Plate1        2646
      Component        Plate2        2646
      Component       Pillar3         132
      Component       Pillar4         132
      Component       Pillar5         132
      Component       Pillar6         132
      Interface    Plate1-Pillar3      12
      Interface    Plate2-Pillar3      12
      Interface    Plate1-Pillar4      12
      Interface    Plate2-Pillar4      12
      Interface    Plate1-Pillar5      12
      Interface    Plate2-Pillar5      12
      Interface    Plate1-Pillar6      12
      Interface    Plate2-Pillar6      12
      Interface    Plate2-Ground        6
    

    You can use spy to visualize the sparse matrices in the final model.

    spy(sysConDual)

    Figure contains an axes object. The axes object with title nnz: M=95256, K=249052, B=1, F=1., xlabel Right-click to select matrices contains 37 objects of type line. One or more of the lines displays its values using only markers These objects represent K, B, F, D.

    Now, specify physical connections using the primal-assembly method.

    sys = model;
    for i=3:6
       sys = interface(sys,"Plate1",dofs{1,i},"Pillar"+i,dofs{i,1},'primal');
       sys = interface(sys,"Plate2",dofs{2,i},"Pillar"+i,dofs{i,2},'primal');
    end
    sysConPrimal = interface(sys,"Plate2",dofs{2,7},'primal');

    Use showStateInfo to confirm the physical interfaces.

    showStateInfo(sysConPrimal)
    The state groups are:
    
        Type        Name      Size
      ----------------------------
      Component    Plate1     2646
      Component    Plate2     2640
      Component    Pillar3     108
      Component    Pillar4     108
      Component    Pillar5     108
      Component    Pillar6     108
    

    Primal assembly eliminates half of the redundant DOFs associated with the shared set of DOFs in the global finite element mesh.

    You can use spy to visualize the sparse matrices in the final model.

    spy(sysConPrimal)

    Figure contains an axes object. The axes object with title nnz: M=94666, K=246838, B=1, F=1., xlabel Right-click to select matrices contains 19 objects of type line. One or more of the lines displays its values using only markers These objects represent K, B, F, D.

    The data set for this example was provided by Victor Dolk from ASML.

    Input Arguments

    collapse all

    Sparse second-order model, specified as a mechss model object. For more information, see mechss.

    Components of sys to connect, specified as a string or an array of character vectors. Use showStateInfo to get the list of all available components of sys.

    Index information of components to connect, specified as an Nc-by-Ni cell array, where Nc is the number of components and Ni is the number of physical interfaces.

    Stiffness matrix, specified as an Nq-by-Nq sparse matrix, where Nq is the number of DOFs in sys.

    Damping matrix, specified as an Nq-by-Nq sparse matrix, where Nq is the number of DOFs in sys.

    Interface assembly method, specified as one of the following:

    • 'dual' — Use the dual-assembly method of physical coupling. This method maintains sparsity at the expense of additional algebraic variables.

    • 'primal' — Use the primal-assembly method of physical coupling. This method uses a minimal number of DOFs but the system may suffer from fill-in.

    For more information, see Algorithms.

    Output Arguments

    collapse all

    Output system with physical interfaces, returned as a mechss model object. Use showStateInfo to examine the list of physical interfaces in the system.

    Algorithms

    collapse all

    Version History

    Introduced in R2020b