Skip to content

Object oriented refactor of active stress with optional spatially varying parameters #519

@dseyler

Description

@dseyler

Problem

The current active stress implementation is embedded inside inside mat_models.cpp where directional stress distribution and EP coupling are all mixed into the constitutive update flow. As discussed in a few other issues, it would be nice to expand the active stress implementation to allow more flexibility, i.e spatially varying stress distributions, magnitude, and temporal delay, but this would be unmanageable in the current procedural code.

@zasexton Let me know if you have any insights on how best to do this.

Solution

I propose refactoring active stress handling into an object-oriented module/class (active_stress.h /.cpp) that provides an interface for spatially varying element-wise parameter lookup, similar to @aabrown100-git's implementation of spatially varying robin BCs. In the proposed solution, compute_pk2cc will request parameters from a spatial field object and apply them instead of directly reading global values. This will keep future additions to active stress contained in its own file, separate from the constitutive math.

Element-wise parameters can be supplied in a VTU path under <Fiber_reinforcement_stress>. I think it makes the most sense to have a single VTU contain all of the spatially varying active stress fields, and those that are not supplied in the VTU will be assigned default values.

Example:

Fiber_reinforcement_stress type="Unsteady">
  <Temporal_values_file_path> LV_stress.dat </Temporal_values_file_path>
  <Spatial_values_file_path> eta.vtu </Spatial_values_file_path>
</Fiber_reinforcement_stress>

I drafted an implementation for this feature with spatially varying directional active stress distributions in this branch.

Let me know if anyone else would find this useful or if there are any other features that folks would like included for active stress. My current list is:

  • spatially varying directional distribtuion (eta_f, eta_s, eta_n)
  • spatially varying stress magnitude
  • spatially varying temporal delay (i.e. one way coupling) @javijv4 Maybe this could be combined with the eikonal equation solver you suggested.
  • active stress "fiber" direction independent from constitutive "fiber" direction

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions