Git Product home page Git Product logo

dgswemv2's Introduction

Computational Hydraulics Group at The Oden Institute for Computational Engineering and Sciences Official Website

This website is developed from the template Alembic. Thank you!

Live at https://ut-chg.github.io.

development guide

Update Website Content: commit to the main branch.

Basic writing and formatting syntax

How to add news?

  1. Create a new markdown file under /_post folder, name it in the date-title.md format (e.g. 2023-01-01-firstpost.md)
  2. In the markdown file, include the follow content.
---
title: your title
categories:
- Workshop(or any other categories)
feature_image: "https://flodismod.github.io/assets/cover_photo.png" (the image on the top of the page)
---

On the News & Outreach page, there is a list of posts. Here you put the preview text, which will be shown below the title of this post.
<!-- more -->

Maintext
<br>

{% include button.html text="Back" link="/news/" %} (this is the button to take you back to news & outreach page)

How to add new group member?

  1. Go to /_includes, find profile_card.html.
  2. Add the following block after the last card:
<div class="card">
    <div class="box2"><img src="/assets/team_profile/new_member.png" alt="Avatar" style="width:100%"></div>
    <div>
        <h4><b>FirstName  LastName</b></h4> 
        <p></p>
        <p class="d">role, Institute</p>
        </div>

    <div class="bottomWrapper">      
        <p ><a href="../ourteam/profile_NewMember">view bio</a></p>
    </div>
</div>
    

To avoid error, make sure you don't put ".md" in the href of <p ><a href="../ourteam/profile_NewMember">view bio</a></p>.

  1. Go to /ourteam, create a new markdown file profile_NewMember.md, and put the following information down:
---
feature_text: |
  ## Team

feature_image: "/assets/cover_photo.png"
---
{% include profile-short.html name="" extra="" position="" position2=""  bio="" link="/assets/team_profile/"%}

[name of the web link](the actual link)

{% include button.html text="Back" link="/groups/" %}

How to add new research topic?

  1. Go to /_includes, find display_research.html.
  2. Add the following block after the last card following the example:
<div class="card">
  <a href="/project/adaptive_mesh"><img src="/assets/project/melioidosis.png" alt="Avatar" style="width:100%"></a>
    <div class="bottomWrapper">
      <a href="/project/adaptive_mesh"><h6><b>Improving the Efficiency of Wave and Surge Models via Adaptive Mesh Resolution</b></h6></a> 
    </div>
</div>
  1. Go to /project, create a new markdown file adaptive_mesh.md. In the markdown file, put the following information down:
---
title: Title of your project
feature_text: |
  Research

feature_image: "/assets/cover_photo/pier.png" (save the project cover photo in the same directory and quote it here)
feature_credit: Photo by someone (leave it blank if no photographers)

---
<br />

maintext



{% include button.html text="Back" link="/research_page/" %}

How to edit the navigation bar?

  1. Go to _config.yml and edit section under # 9. Site navigation.

dgswemv2's People

Contributors

bremerm31 avatar kazbekkm avatar kentonwho avatar smattis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

dgswemv2's Issues

Error in input file generated by partitioner

When running the partitioner without any output node, the partitioner produces a malformatted input_parallelized.15 file. Presumably, this is an error in the input_parameters::WriteTo function.

CI can be sped-up

  • Unit tests should occur at the same time as parallel correctness tests
  • Manufactured solution timestep should be increased to make the execution time on par with the parallel weirs test

Invalid iterator reading

Currently problem/SWE/kernels_preprocessor/swe_pre_create_bound.hpp and problem/SWE/kernels_preprocessor/swe_pre_create_inface.hpp are erasing the iterators of raw_boundaries that they are looping over. This invalidates the current iterator and causes an invalid read in the system.

Serialization buffers can be smaller

Right now the serialization buffer writes the entire RK-stages into the buffer. Technically, we only need input looking things to be serialized.

Unnecessary linking for swe_definitions

We should move the following

namespace Global {
	static constexpr double g = 9.81;
	static constexpr double Cf = 0.001;
}

enum BoundaryConditions : unsigned char {
	land = 0,
	tidal = 1,
	internal = INTERNAL
};

out of swe_definitions. Or better yet give the problem class it's own header file. It seems wrong that I have to link to SWE::Data to run the LLLF flux test

Need additional weir testing

We need a functional test for weirs to ensure parallel correctness. Test should probably mimic something along the test in scripts/correctness/test_parallel_correctness.sh

OMPI Sim units

find a way to emplace_back a sim unit instead of using unique_ptr

Unnecessary kernel in Problem class?

Is there a reason for this function?

template <typename RawBoundaryType>
static void create_distributed_boundaries_kernel(ProblemMeshType&,
                                                 std::tuple<>&,
                                                 std::map<uint, std::map<uint, RawBoundaryType>>&);

It seems like this function never gets called, only the version that also calls a communicator argument seems to get called.

Load balancing framework missing

I want to introduce the load balancing frame work similar to how it was introduce in the LBL load balancing paper.

  • Need to build a polymorphic base class for Tile-, Locality- and World-models
  • The simplest load balancer should move tiles around randomly, and be used in #59
  • We should implement a semi-static load balancer.

Missing `InputParameters` test

A small test needs to be added that checks that all the necessary nodes are defined and helpful error exceptions get thrown when they aren't.

Error in `SWE::Data::resize(uint)`

If I call resize when this->state.size() is zero, the unsigned arithmetic causes the value to flip to unsigned real max.

But resize also doesn't recreate the number of states passed as the argument. i.e. it creates nstates+1 stages. I think this would be more clear to just pass nstates+1 as the arguement, rather than letting the function secretly add an extra stage.

Weir test does not provide consistent results

Taking the L2-Norm of the solution at the final time for the weir test case introduced in #78 , we find that L2 errors are not agreeing. The current values are

L2 Errors for each build type:
L2 error for serial: 2278.232235133
L2 error for hpx: 2280.0290280987
L2 error for ompi: 2280.0290280987

which is a relatively significant deviation in value.

Error writing output when `ouptut/` doesn't exist

At the moment, if an output/ directory doesn't exist based on where you're running the simulation, no output will get written.

It might be better to include an option in the input file to specify the output location.

Implement semistatic load balancer

Based on previous performance results, a semi-static load balancer seems to be the first thing to try to help improve parallel performance.

CircleCI build broken

The Circle CI build process is broken. It seems that there is some confusion regarding which C++ compiler to use. Building should be revamped explicitly specifying which compiler to use for all dependencies.

Set-up docker

It would be nice to be able to ship a container with everything inside to allow people to play around with the code more easily.

Not all ADCIRC meshes have generic boundaries

I'm unsure if this a hold-over from the dgswem code. However, not all valid ADCIRC meshes have generic boundaries. Thus we need to check the input file stream to make sure that reading the generic boundaries is valid.

Parallel correctness test for load balancing missing

We need to add a load balancing test similar to scripts/correctness/test_parallel_correctness.sh to check that dynamically load balanced implementations are giving identical results to parallel implementations.

Adcirc mesh file error checks

We need to add a method to check that the adcirc mesh is well formed.
This should include:

  • no missing edges
  • all elements have positive jacobian(?)

Not sure if this is everything, but it seems like a start

Features for partitioner

Partitioner needs to be able to take care of mesh files with weir boundary conditions.
If possible: can we keep neighbor element IDs for distributed boundaries instead of assigning them as DEFAULT_ID after partitioning.

const Comm

communicator argument in preprocessor functions should be const

swe: inputs should set problem parameters

Right now the inputs in swe yaml-node the input file are ignored. I think there are probably a few scenarios. Right now there are only global variables, which we could replicate by just making the swe_inputs class a static member of the problem type. This is probably closest to the spirit of the current implementation

Alternatively, we could make it a proper member variable of the problem class, but this I think might put more strain on the API.

Features needed for serializing meshes

These are features that need to be built into HPXSimulationUnit::load to ensure that the simulation can continue after the HPXSimulationUnit has been migrated to another directory

  • writer log file needs to be reopened
  • Interfaces need to be reconnected
  • Distributed buffers need to get reset by calling Problem::create_distributed_boundaries_kernel
  • Need to add serialization for the spherical projection

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.