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

Tutorial Proposal #1586

Merged
merged 28 commits into from
Jul 11, 2022
Merged

Tutorial Proposal #1586

merged 28 commits into from
Jul 11, 2022

Conversation

bena-nasa
Copy link
Collaborator

@bena-nasa bena-nasa commented Jun 28, 2022

I've made the start of a tutorial here for MAPL from a code exercise sense and put this here for feedback. As far as the PP that gives an overall view of MAPL that's something else.

Here's the idea. I introduced a tutorial directory. I have some GridComps, that increase in "complexity", from doing nothing from creating a grid to creating a grid, an export, and adding two children and connecting.
I then have a single driver executable that I get away with by adding a one more MAPL_AddChild overload to add a child from a dso. I then added a new command argument to that when you create a cap object passing a setservices is optional. If you don't you can specify a dso library on the command line to use as root. I guess another way would have been to specify the name of the library in the CAP.rc.

In any case CapGridComp calls the right interface to MAPL_AddChild to add the root depending whether it was delivered a procedure pointer or a dso library name.

I then have a series of "tutorial" cases that use these (and are driven through cap like the regular model) as well as a simple bash driver where you can pass the installation path and path to the tutorial directory you want to run.
So far are 4 + 5th-ish
They are
Create a single gridcomp, all it does it print hello world in run
Create a single gridcomp, adds an export, writes out in history
Create parent+child (child has export)
Create parent+2 siblings one exports other imports field
Create parent+ (child has import via Extdata, but to do this I need to commit a netcdf file..., that's not text or source code ...)

So questions,
If people are generally ok with what I've done here. We need documentation to go with this. Some top level about how to run teach and for each tutorial.
Should it live in each tutorial, each one could have a README.md describing it. This could be elsewhere such as on the wiki as well.

I assume whatever the documentation for each tutorial would describe what is going on, what is is trying to demonstration, as well as maybe propose something further the user could try.

After these synthetic demonstrations, the next assignment could be like, ok now try such and such in the real model.

Also, I do not "install" the actual tutorial RC files as I'm not sure where we should put this under the installation. Should this be under etc for example?

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Trivial change (affects only documentation or cleanup)

Checklist:

  • I have tested this change with a run of GEOSgcm (if non-trivial)
  • I have added one of the required labels (0 diff, 0 diff trivial, 0 diff structural, non 0-diff)
  • I have updated the CHANGELOG.md accordingly following the style of Keep a Changelog

@bena-nasa bena-nasa added 🎁 New Feature This is a new feature 0 Diff The changes in this pull request have verified to be zero-diff with the target branch. labels Jun 28, 2022
@bena-nasa bena-nasa requested review from a team as code owners June 28, 2022 18:06
@bena-nasa bena-nasa added the 🚫 Contingent - DNA Do Not Approve (DNA). These changes are contingent on other PRs label Jun 28, 2022
@bena-nasa bena-nasa removed the 🚫 Contingent - DNA Do Not Approve (DNA). These changes are contingent on other PRs label Jun 28, 2022
atrayano
atrayano previously approved these changes Jun 28, 2022
@mathomp4 mathomp4 mentioned this pull request Jul 7, 2022
7 tasks
Copy link
Member

@mathomp4 mathomp4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cmake good.

@mathomp4 mathomp4 merged commit abc3569 into develop Jul 11, 2022
@mathomp4 mathomp4 deleted the feature/bmauer/tutorial_proposal branch July 11, 2022 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0 Diff The changes in this pull request have verified to be zero-diff with the target branch. 🎁 New Feature This is a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants