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

Kelvin-Voigt Boundary: Transferring P-Wave and S-Wave Material Properties to Nodes #712

Open
cgeudeker opened this issue Apr 20, 2021 · 0 comments
Assignees

Comments

@cgeudeker
Copy link
Contributor

cgeudeker commented Apr 20, 2021

Describe the feature
Looking for some advice on how to properly transfer P-wave and S-wave material properties to nodes so they can be used for the Kelvin-Voigt boundary calculations.

Describe alternatives
Current progress towards a solution:
So far I've run with the assumption that the set of functions will only be run using materials that have these material properties defined. As such the nodal property is updated from the material information through particle.tcc by the following lines:

pwave_velocity = (this->material())->template property<double>(std::string("pwave_velocity"));
swave_velocity = (this->material())->template property<double>(std::string("swave_velocity"));
nodes_[i]->update_property(true, "pwave_velocity", pwave_velocity, this->material_id(), 1);
nodes_[i]->update_property(true, "swave_velocity", swave_velocity, this->material_id(), 1);

The primary issue I've run into with this approach thus far is when to assign initial values for these properties so that they can be updated. (Unless it was a syntax error I believe the properties can only be updated in particle.tcc meaning they would probably need to be initially assigned in node.tcc though I've been trying to reference domain_gradients but can't seem to find where that's initially assigned.

Additional context
Below is a summary of some of the problems that I believe exist with regards to this aspect of the feature.

  1. Assigning wave properties to nodes for non-linear elastic materials
  • This may be done outside of the function, but I thought that some sort of assert statement to ensure the material was linear elastic may be appropriate, but I'm unsure how to execute this.
  1. Unnecessarily assigning these properties to the nodes
  • Similar to the above, I'm unsure if this would be handled elsewhere, but I believe this would only be useful information for nodes where the absorbing boundary would be applied. As such, I was thinking that potentially splitting the apply function into the traditional assign and assign pairing, where the former would assign initial values for these properties. Then perhaps they would only be updated if initially assigned.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants