Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Material Thickness for Kelvin-Voigt Boundary #708

Closed
cgeudeker opened this issue Mar 9, 2021 · 10 comments
Closed

Material Thickness for Kelvin-Voigt Boundary #708

cgeudeker opened this issue Mar 9, 2021 · 10 comments

Comments

@cgeudeker
Copy link
Contributor

Describe the feature
Kelvin-Voigt boundary equation requires adjacent material thickness in order to calculate the spring coefficient corresponding to the spring component of the boundary.

Describe alternatives

  1. The original idea was to utilize cell length in order to calculate this value. For each node where the boundary condition is applied the cell length of each cell above the node that had the same material property would be summed to derive the thickness.

    a. The problem I'm having with this approach is finding a way to determine which nodes, and therefor materials, are a part of
    which cells.

  2. It could also be possible to calculate by iterating through the nodes from each boundary node to find the furthest distance. The iteration would start from a boundary mode and only find the furthest distance to the node with the same material id and x coordinate, or y depending on where its being applied.

    a. The main problem with this approach is that it may just be unnecessary if the above approach is possible.
    b. I'm also unsure if it is possible to iterate through all the nodes within node.tcc.

Any suggestions for the above approaches or perhaps alternative approaches would be much appreciated.

Additional context
Kelvin Voigt boundary equations and relating equations for calculating the spring coefficient, where material thickness is represented by delta.
KV_boundary_eqs
spring_coeffs

@jgiven100
Copy link
Collaborator

jgiven100 commented Mar 9, 2021

@cgeudeker can you use nodal entity sets to predefine the nodes involved where this boundary condition occurs?

Also, I'm a bit confused by what exactly "material thickness" means above. I was thinking we're in a 2D plane strain problem, so cell "thickness" reminds me of the distance into/out of the page. It seems we actually need to consider the cell length or cell height (depending on the boundary orientation)?

Therefore, for a boundary condition along the model's bottom, for each node we want 1/2 the cell length for the left and right adjacent cell? Similar to a tributary area for a frame problem.

Please let me know if I'm not thinking about this correctly.

@cgeudeker
Copy link
Contributor Author

Also, I'm a bit confused by what exactly "material thickness" means above. I was thinking we're in a 2D plane strain problem, so cell "thickness" reminds me of the distance into/out of the page.

I suppose when I was thinking about it the other week, I thought "thickness" was in reference to the distance from the material's edge to the point furthest away. So if we had a soil deposit, thickness would refer to the height of the lowest layer if we're looking to apply the boundary at the model's bottom. That being said, I think your interpretation may be correct when looking back at the reference thesis. What are your thoughts on this @kks32? That being said, what would we do for a "thickness" value in the case of a 3D problem? I'm not sure if there is a plan to use this feature for the 3D case, so if not then its a moot point.

@jgiven100
Copy link
Collaborator

@cgeudeker Ignore my thoughts above - they're not right.

Looking close at the paper, \delta is a user-defined value that acts as a tuning parameter for how much the boundary acts like a dashpot.

There are some limitations based on h_min, a, and b, which should be checked. But otherwise, you get to pick it. Figure 4.16 shows how the displcament changes as \delta changes:

image

@kks32
Copy link
Contributor

kks32 commented Mar 10, 2021

@jgiven100 could you share the paper reference please?

@jgiven100
Copy link
Collaborator

@kks32
Copy link
Contributor

kks32 commented Mar 10, 2021

Thanks @jgiven100 !

image

It is arbitrary, we could use like @jgiven100 suggested nodal entity set and add a special boundary condition with that thickness.

@cgeudeker
Copy link
Contributor Author

Alright, so in terms of the input as a nodal entity set for an absorbing_constraint, that would look something like this:

"absorbing_constraint": [
    {
        "nset_id" : 0,
        "dir": 0,
        "thickness": 0.5
    }
]

There are some limitations based on h_min, a, and b, which should be checked.

a and b:
Should we add these variables as inputs for the boundary constraint? They're "chosen depending on the wave incidence angle so that they provide maximum absorption." The thesis only used a=b=1 for its examples, so that's something to note if we make a benchmark problem based on one of these examples.

h_min:
The reference thesis states "h_min is the characteristic length of the finite element mesh". I am slightly confused about where I would be looking for this value/how it may be calculated.

@jgiven100
Copy link
Collaborator

We can add something within the boundary_conditions portion of the input.json like this

"boundary_conditions": {
...
   "absorbing_boundary": [
              {
                  "nset_id" : #,
                  "delta": #,
                  "a": #,
                  "b": #,
                  "dir": #
              }
          ],
...
},

Maybe for the above input, a and b are optional; if no values are provided in the input file, then a=b=1 will be initialized.

There are a couple different ways to define characteristic length, but if we're only concerned about a uniform square background mesh, then h_min will just be the edge length (height or length) of any cell.

@cgeudeker
Copy link
Contributor Author

We can add something within the boundary_conditions portion of the input.json like this

Since this will be under the boundary_conditions portion, will I need to add corresponding files to the loads_bcs folder as well?

@kks32
Copy link
Contributor

kks32 commented Mar 15, 2021

@cgeudeker yes, it should be in loads_bcs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants