Coder Social home page Coder Social logo

Create [MASTODON] Block about mastodon HOT 5 OPEN

moosebuild avatar moosebuild commented on August 23, 2024
Create [MASTODON] Block

from mastodon.

Comments (5)

moosebuild avatar moosebuild commented on August 23, 2024

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

from mastodon.

cbolisetti avatar cbolisetti commented on August 23, 2024
  • 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

from mastodon.

cbolisetti avatar cbolisetti commented on August 23, 2024

@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 = 
  [../]

[]

from mastodon.

sveerara avatar sveerara commented on August 23, 2024

@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.

from mastodon.

cbolisetti avatar cbolisetti commented on August 23, 2024

@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.

from mastodon.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.