Skip to content

Commit 21ed132

Browse files
committed
Merge PR #761 'xylar/ocean/add_design_doc_template' into ocean/develop
Add a template for MPAS-Ocean design docs #761 This merge adds a template RestructuredText document that can be used for future design documents for MPAS-Ocean. Design docs that follow this template should be easier to incorporate into the documentation we plan to build.
2 parents 06e8f50 + 3d52069 commit 21ed132

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed
91.6 KB
Loading

docs/ocean/design_docs/template.rst

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
2+
Some descriptive title
3+
======================
4+
5+
date: YYYY/MM/DD
6+
7+
Contributors:
8+
9+
10+
11+
Summary
12+
-------
13+
14+
The purpose of this section is to summarize what capability is to be added to
15+
MPAS-Model through this design process. It should be clear what new code will do
16+
that the current code does not. Summarizing the primary challenges with respect
17+
to software design and implementation is also appropriate for this section.
18+
Finally, this statement should contain a general statement with regard to what
19+
is "success."
20+
21+
22+
Requirements
23+
------------
24+
25+
Requirement: name-of-topic-here
26+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27+
28+
Date last modified: YYYY/MM/DD
29+
30+
Contributors: (add your name to this list if it does not appear)
31+
32+
33+
Each requirement is to be listed under a "section" heading, as there will be a
34+
one-to-one correspondence between requirements, design, proposed implementation
35+
and testing. Requirements should not discuss technical software issues, but
36+
rather focus on model capability. To the extent possible, requirements should
37+
be relatively independent of each other, thus allowing a clean algorithm design,
38+
implementation and testing plan.
39+
40+
41+
Algorithm Design (optional)
42+
---------------------------
43+
44+
Algorithm Design: name-of-topic-here (same as Requirement)
45+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46+
47+
Date last modified: YYYY/MM/DD
48+
49+
Contributors: (add your name to this list if it does not appear)
50+
51+
For each requirement, you can provide an algorithm design that is intended to
52+
meet that requirement. Algorithm can include detailed technical discussions of
53+
PDEs, algorithms, solvers and similar, as well as technical discussion of
54+
performance issues. In general, this section should steer away from a detailed
55+
discussion of low-level software issues such as variable declarations,
56+
interfaces and sequencing.
57+
58+
If you want to add math, the syntax is almost identical to Latex:
59+
60+
.. math::
61+
62+
(a + b)^2 &= (a + b)(a + b) \\
63+
&= a^2 + 2ab + b^2
64+
65+
If you want to add an image, keep in mind that these should be quite small
66+
(jpegs are preferred but small pngs are okay) to keep the size of the repo
67+
small. Here is an example:
68+
69+
.. image:: small_images/ocean.jpg
70+
:width: 500 px
71+
:align: center
72+
73+
74+
Implementation
75+
--------------
76+
77+
Implementation: name-of-topic-here (same as Requirement)
78+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
79+
80+
Date last modified: YYYY/MM/DD
81+
82+
Contributors: (add your name to this list if it does not appear)
83+
84+
This section should detail the plan for implementing the algorithm design for
85+
this requirement. In general, this section is software-centric with a focus on
86+
software implementation. Pseudo code is appropriate in this section. Links to
87+
actual source code are appropriate. Project management items, such as git
88+
branches, timelines and staffing are also appropriate. Pseudo code can be
89+
included via blocks like
90+
91+
.. code-block:: python
92+
93+
def example_function(foo):
94+
return foo**2.0
95+
96+
97+
Testing
98+
-------
99+
100+
Testing and Validation: name-of-topic-here (same as Requirement)
101+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
102+
103+
Date last modified: YYYY/MM/DD
104+
105+
Contributors: (add your name to this list if it does not appear)
106+
107+
How will the implementation of this requirement be tested, showing that we have
108+
met the requirement? Which tests from the regression suites are appropriate?
109+
How would they need to be configured or modified to test that the new software
110+
is working properly? What additions or modifications to the nightly (or
111+
another) regression suite might be made to ensure that the new capability
112+
continues to work as expected?

0 commit comments

Comments
 (0)