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

Create [MASTODON] Block #50

Open
moosebuild opened this issue Sep 18, 2017 · 5 comments
Open

Create [MASTODON] Block #50

moosebuild opened this issue Sep 18, 2017 · 5 comments
Assignees

Comments

@moosebuild
Copy link

Slaughter, Andrew Edward created issue:

@bolic @Veers @numaoa @hoffwm @ColeJL Use this to define what the [Mastodon] block should do.

[Mastodon]
  [./SiteResponse]
    foo = True # what Kernels, BCs, AuxKernels, Outputs etc. should this enable
 [../]
[]
@moosebuild
Copy link
Author

Numanoglu, Ozgun A commented:

Below is the only input required by user to run shear beam type site response analysis:

  1. Height of the soil profile.
  2. Total number of layers.
  3. Material constitutive model type corresponding to each layer.
  4. Material properties of constitutive model assigned to the corresponding layer.
  5. Viscous damping in percent (This is a material property but is assigned as artificial viscous damping [e.g. Rayleigh damping] and global rather than layer based). It is better to ask user to provide layer based damping because damping is depth and mean effective stress dependent.
  6. Input ground motion or seismic force (user gives the time history file and its applied at the base)

Attached i gave an example where there is 10 m of profile with 10 layers each having linear elastic material constitutive model. Thus the only material input is shear modulus and damping. For example, if user decides to use I-soil, there needs to be more columns after shear modulus to input the I-soil constitutive model parameters. The rest is related to numerical modeling and MASTODON can automatize the blocks and thats it.

Thanks

Ozgun

Linear_Elastic_Example.ods

@cbolisetti
Copy link
Contributor

cbolisetti commented Oct 18, 2017

  • Create variables and auxvariables by default, based on the dimension of the problem
  • Create velocity and acceleration auxkernels by default, based on the dimension of the problem
  • Create stress divergence kernel automatically
  • Create stress and strain AuxVariables and AuxKernels if corresponding output is requested
  • Add Rayleigh damping parameters to [Model] sub block
  • Add gravity action
  • Make model block link element friendly
  • Add capability to optimize mesh density for a generated mesh.
  • Create subblock for BCs
  • Specify defaults for use_displaced_mesh in kernels, materials and boundary conditions.
  • Create executioner, based on static or dynamic analysis. Also calculate a normalized tolerance based on the parameters of the problem.
  • Create point_output parameter, which will automatically create response_history_builder VPPs for points, including acceleration, velocity and displacement in all directions, based on the dimension of the problem
  • Create response_spectrum parameter, which will automatically create response_spectra_calculator VPPs for the above points in all directions, based on the dimension of the problem
  • Create element_output parameter, which will automatically create postprocessors for stress, strain and other element outputs

@cbolisetti cbolisetti self-assigned this Dec 1, 2017
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Jan 20, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Jan 26, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Jan 26, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 7, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 8, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Feb 20, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 28, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 28, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 28, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 28, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 28, 2018
cbolisetti added a commit to cbolisetti/mastodon that referenced this issue Mar 29, 2018
sveerara added a commit that referenced this issue Mar 29, 2018
Added Rayleigh damping parameters to Mastodon/Model block. Refs #50 a…
@cbolisetti
Copy link
Contributor

cbolisetti commented Sep 6, 2018

@aeslaughter @sveerara @colejust @hoffwm

Below is what I think the input file should like, eventually. Please edit/comment based on your ideas as well.

[Mastodon]
  
  [./Mesh]
    type = filemesh/generated_mesh
    max_frequency = 
    ## other params
  [../]

  [./Model]
    dynamic_analysis = true
    gravity = true/false
    g = 9.81      ## (needed for units)
    dt = 
    num_steps = 
    solver = 
  [../]

  [./Loads]
    ## Nodal loads for example, which, I think, is a nodal kernel and not a BC. 
    ## Also for body forces
    ## Boundary conditions like Lysmer boundary
    ## Seismic input
    ## Fault rupture
    [./block0]  
      block = 0
      type =            
      value = 
    [../]
    [./bc1]
      type = PresetDisplacement
      direction = '0 1'
      function =  'xdisp ydisp'
      boundary = 
    [../]
    [./bc2]
      type = Pressure
      boundary = 
      value/function =
    [../]
  [../]

  [./DRM]
    [./name1]
      analysis_type = 'auxiliary' ## Big model or small model
      filename = '' ## Filename for input/output of DRM interface forces
      boundary = ## boundary identifier for DRM interface
    [../]
  []

  [./Damping]
    [./block0]
      block = 0
      type = Rayleigh     ## or other types of damping
      eta = 
      zeta =
    [../] 
    [./block1]
      block = 1
      type = othertype
      ## params for other types of damping
    [../] 
  [../]

  [./Materials]
    [./ISoil]
      block = 0
      ## isoil params for block 0
    [../]
    [./ISoil]
      block = 1
      ## isoil params for block 1
    [../]
    [./LRIsolator]
      block = 3
      ## LRIsolator params for block 3
    [../]
  [../]

  [./Outputs]
    [./StressStrain]
      points =                 ## set of coordinates or a side set, etc
    [../]
    [./Histories]
      points =                 ## set of coordinates or a side set, etc
      dt_output = 
    [../]
    [./ResponseSpectra]
      points =                 ## set of coordinates or a side set, etc
      frequency_range = fmin, fmax
      num_frequencies = 
      damping_ratio = 
    [../]
    [./FFT]
      points =                 ## set of coordinates or a side set, etc
      dt_output = 
    [../]
    [./HSI]
      points =                 ## set of coordinates or a side set, etc
      frequency_range = 
      damping_ratio = 
  [../]

[]

@sveerara
Copy link
Contributor

sveerara commented Sep 7, 2018

@cbolisetti, the above format looks great. It does look much simpler than our current input file. I think the BCs block should also contain variable or coordinate direction as input. There are a few BCs which should automatically be applied in all three directions - NonReflectingBC, Pressure etc. PresetBC, PresetDisplacement or PresetAcceleration should only applied along the user provided coordinate directions. We could have something like

[./BCs]
 [./bc1]
   type = PresetDisplacement
   direction = '0 1'
   function =  'xdisp ydisp'
   boundary = 
 [../]
 [./bc2]
   type = Pressure
   boundary = 
   value/function =
 [../]
[../]

Similarly we might need different subblocks for element/nodal output. I am assuming for nodal output all the displacements, velocities and accelerations at the given points/boundary will be stored. Maybe we can also add an option to the nodal output to calculate response spectras for all the nodal output.

Assuming that most users would probably want to model frequency independent damping using Rayleigh damping, we could just ask for the damping ratio and frequency range and calculate eta and zeta using the formula from the theory manual. Since most of the kernels/nodal kernels that use Rayleigh damping live in TensorMechanics, they are not integrated with the layer system. So we might need subblocks within Damping as well for each block.

@cbolisetti
Copy link
Contributor

@sveerara I agree regarding the BCs block and nodal/elemental output blocks and changed the template above accordingly. I specified Rayleigh damping as a separate block in this input file, but currently it is included in the Mastodon/Model block since that is the one that creates the stress divergence and inertia kernels. I think eventually we need to figure out a way to move damping outside since, as you said, in most cases, different blocks would have different damping.

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

3 participants