PDMS stretching model

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • amitevska
    Junior Member
    • Nov 2024
    • 9

    #1

    PDMS stretching model

    Hello,
    I am working on my first FEBio model, which is a simulation of an aluminum post indenting an elastic (PDMS) bottom of a cell culture plate well. I used rigid body and neo-hookean materials, respectively, sliding elastic contact between the surfaces, and 3 boundary conditions-- 1. fixed/ zero displacement perimeter of the well/membrane, 2. zero (x, y) displacement of the post, and 3. prescribed (z) displacement of the post (using load controller, ramp input to 1mm). I have the two objects slightly overlapping because I wanted to do the analysis in a single step and from what I understood from the contact webinars, this is how to achieve it. I kept nearly all of the default parameters, besides adding neo-hookean material properties, and using a contact coefficient of friction of 0.1. I just want to get a simple version of the model to run, I am currently getting these errors:
    Error: Rigid nodes cannot be prescribed;
    Error: Boundary condition 2 (PrescribedDisplacement2) failed to initialize;
    Error: Model initialization failed
    I expect the deformation of the PDMS to be highly nonlinear, and since I am still new to the software, I'm not sure if my errors are coming from this. I attached my model if anyone would be able to give feedback on what I have started.

    Model2.fs2

    Best, Angela
    Last edited by amitevska; 01-05-2025, 08:26 AM.
  • ateshian
    Developer
    • Dec 2007
    • 2032

    #2
    Hi Angela,

    The best way for us to help you resolve this problem is if you could share the model file that's causing you problems. In principle what you said you want to model is entirely feasible in FEBio, so I expect that you just encountered some basic errors resulting from setting up the problem incorrectly.

    Best,

    Gerard

    Comment

    • amitevska
      Junior Member
      • Nov 2024
      • 9

      #3
      I apologize I thought I uploaded the model file-- I attached it here. Model2.fs2
      Attached Files

      Comment

      • maas
        Lead Code Developer
        • Nov 2007
        • 3856

        #4
        Hi Angela,

        The main issue with the model is that you cannot describe the rigid body motion using boundary conditions. Boundary conditions can only be applied to the deformable parts of your model. For rigid bodies, you have to use rigid constraints. I've modified your model so that it uses equivalent rigid constraints to prescribe the motion of the rigid body.
        I also lowered the number of elements through the thickness of the plate. I did this because I noticed that the mesh appeared to be locking, likely due to the large aspect ratio of the elements.
        In any case, the attached model should run, so please take a look and let me know if you have any questions.

        Best,

        Steve
        Attached Files
        Department of Bioengineering, University of Utah
        Scientific Computing and Imaging institute, University of Utah

        Comment

        • amitevska
          Junior Member
          • Nov 2024
          • 9

          #5

          Thank you! That clarified many of my questions. However, I would like to have the plate be a few elements thick, as I am interested in the strains that occur throughout the solid. How can I add more elements to the plate thickness? Also, I am currently facing an error when trying to refine the plate mesh, "This mesh has dependencies in the model. Modifying it could invalidate the model and cause problems. Do you wish to continue?" -- even when I choose yes, the mesh does not change. How can I change the mesh without rebuilding the model?

          Comment

          • maas
            Lead Code Developer
            • Nov 2007
            • 3856

            #6
            Hi Angela,

            If you want to create more elements through the thickness, I would consider refining the mesh uniformly in order to avoid elements with high aspect ratios.

            The warning indicates that you have some boundary conditions, loads, etc. that depend on the mesh. Proceeding may invalidate these model components, but you can always reassign the selections if necessary. The best way to avoid this, is to assign boundary conditions, etc., using geometry selections (i.e. blue selections, using the selection tools on the main toolbar) and avoid assigning mesh selections (red selections, using the selection tools below the graphics view.)

            Best,

            Steve
            Department of Bioengineering, University of Utah
            Scientific Computing and Imaging institute, University of Utah

            Comment

            • amitevska
              Junior Member
              • Nov 2024
              • 9

              #7
              I am now trying to push my model to higher displacements and higher coefficients of friction. I assume that with these more extreme settings I will need to change some parameters in my analysis step, specifically in the time settings-- for instance, here I attached a model where I used mu=0.4 and ramp displacement of 1mm, produced by LC2, and my model keeps diverging. I have changed time_steps=4 in this attachment, although I also tried changing step_size and max_step_size, and time_steps, to other values. I eventually would like to see if I can push my displacement to 1.5 or even 2mm. Am I changing the right things to accommodate for these changes?
              I also wanted to ask, if my model is not completing to 100%, such as this one, are the results not reliable?

              Angela
              Attached Files

              Comment

              • maas
                Lead Code Developer
                • Nov 2007
                • 3856

                #8
                Hi Angela,

                I made a few changes and was able to get it to run all the way:
                1. I decreased the time step size. Usually, when problems don't run well, the first thing to try is a smaller time step size. In nonlinear analyses, the time step size can make a big difference and if it's too big, a solution cannot be found.
                2. I also set the seg_up contact parameter to 2. A common problem in contact is that the facet of the secondary surface that a node from the primary surface projects on can change. If this happens repeatedly, the solution can often fail to converge. The seg_up parameter sets the max number of times such a jump can happen. Setting this to a non-zero value can often help as well.
                3. I also turned the symmetric_stiffness flag of the contact interface off. The contact formulation you are using is non-symmetric and thus this flag should be off.
                Please try the attached model on your end and let me know if you have any questions.

                Best,

                Steve
                Attached Files
                Department of Bioengineering, University of Utah
                Scientific Computing and Imaging institute, University of Utah

                Comment

                • amitevska
                  Junior Member
                  • Nov 2024
                  • 9

                  #9
                  Hi again,

                  I recreated my model, using two objects instead of two parts of one object, so that I could change each geometry, if needed. The objects have slightly different geometries than before. I am having trouble getting this file to run correctly, although I have followed the advice from the other model file. Even though the job converges to 100%, the prescribed displacement is not being met (only getting up to 0.1mm, out of 1mm), and the contact looks problematic in the visual output.

                  Also, according to mesh diagnostics, I have some errors in the membrane mesh, although I built it the same as in my previous models, and I am unsure how to address the errors: "ERROR: Number of face partitions (3) does not match number of surfaces (6). ERROR: Number of edge partitions (2) does not match number of curves (12). ERROR: Number of node partitions (0) does not match number of vertices (10)."

                  Please let me know what I can try to resolve the issues. Also, thank you for all the help so far, I am learning a lot!

                  Angela
                  Attached Files

                  Comment

                  • maas
                    Lead Code Developer
                    • Nov 2007
                    • 3856

                    #10
                    Hi Angela,

                    Your time step settings set the end time for your simulation to 0.03 (=30 x .001). But your loadcurve doesn't reach its max value until time 0.3. So you'll have to either adjust your time step settings or your loadcurve in order to get to your desired displacement.

                    Best,

                    Steve
                    Department of Bioengineering, University of Utah
                    Scientific Computing and Imaging institute, University of Utah

                    Comment

                    Working...
                    X