1"use strict";(self.webpackChunkdune_copasi_docusaurus=self.webpackChunkdune_copasi_docusaurus||[]).push([[3375],{6870:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var s=i(4848),t=i(8453);const o={id:"api",title:"Application Programming Interface",sidebar_label:"API"},d=void 0,r={id:"api",title:"Application Programming Interface",description:"Doxygen Documentation",source:"@site/versioned_docs/version-v1.0.0/api.md",sourceDirName:".",slug:"/api",permalink:"/docs/v1.0.0/api",draft:!1,unlisted:!1,editUrl:"https://gitlab.dune-project.org/copasi/dune-copasi/-/edit/master/doc/docusaurus/versioned_docs/version-v1.0.0/api.md",tags:[],version:"v1.0.0",lastUpdatedBy:"Santiago Ospina De Los Rios",lastUpdatedAt:1713784883e3,frontMatter:{id:"api",title:"Application Programming Interface",sidebar_label:"API"},sidebar:"docs",previous:{title:"Output",permalink:"/docs/v1.0.0/output"}},c={},a=[{value:"Doxygen Documentation",id:"doxygen-documentation",level:3},{value:"Preprocessor Definitions",id:"preprocessor-definitions",level:3}];function l(e){const n={a:"a",admonition:"admonition",code:"code",h3:"h3",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.admonition,{title:"Work In Progress",type:"caution"}),"\n",(0,s.jsx)(n.h3,{id:"doxygen-documentation",children:"Doxygen Documentation"}),"\n",(0,s.jsxs)(n.p,{children:["The C++ classes are documented in the C++ source code and may be visualized with\n",(0,s.jsx)(n.a,{href:"https://www.doxygen.nl/index.html",children:"Doxygen"}),". To locally have the doxygen html\ndocumentation, build ",(0,s.jsx)(n.code,{children:"dune-copasi"})," ",(0,s.jsx)(n.a,{href:"/docs/v1.0.0/install_use",children:"manually"})," and use the\n",(0,s.jsx)(n.code,{children:"make doc"})," target in the build directory. For this, you need to have ",(0,s.jsx)(n.code,{children:"doxygen"})," on your system,"]}),"\n",(0,s.jsx)(n.h3,{id:"preprocessor-definitions",children:"Preprocessor Definitions"}),"\n",(0,s.jsx)(n.p,{children:"There are two sources of preprocessor definitions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"CMake targets"}),": These are transsitively passed together with the ",(0,s.jsx)(n.code,{children:"dune-copas::dune-copasi"})," target.\nThese are stored on the ",(0,s.jsx)(n.code,{children:"INTERFACE_COMPILE_DEFINITIONS"})," property of the target."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",metastring:'title="CMakeLists.txt"',children:"get_target_property(definitions dune-copasi::dune-copasi INTERFACE_COMPILE_DEFINITIONS)\nmessage(\"dune-copasi cmake compile definitions: '${definitions}'\")\n"})}),"\n"]}),"\n",(0,s.jsxs)(n.li,{children:["\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Config header"}),": We inherit a config header from the dune build system. It's installed under\n",(0,s.jsx)(n.code,{children:"include/dune/copasi/config.h"})," on the cmake install prefix (e.g. ",(0,s.jsx)(n.code,{children:"/opt/dune/"}),")."]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The following is a list of useful definitions:"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Definition"}),(0,s.jsx)(n.th,{children:"Usage"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"DUNE_COPASI_SD_LIBRARY"})}),(0,s.jsxs)(n.td,{children:["Inspect if the precompiled instantiations for single domain models are present. If so, you may skip inclusion of ",(0,s.jsx)(n.code,{children:"dune/copasi/model/multidomain_diffusion_reaction.cc"})," template definitions."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"DUNE_COPASI_MD_LIBRARY"})}),(0,s.jsxs)(n.td,{children:["Inspect if the precompiled instantiations for multiple domain models are present. If so If so, you may skip inclusion of ",(0,s.jsx)(n.code,{children:"dune/copasi/model/diffusion_reaction.cc"})," template definitions."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"HAVE_DUNE_COPASI_CONFIG_H"})}),(0,s.jsxs)(n.td,{children:["Whether the ",(0,s.jsx)(n.code,{children:"dune/copasi/config.h"})," header must be included"]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"DUNE_USE_FALLBACK_FILESYSTEM"})}),(0,s.jsxs)(n.td,{children:["Whether ",(0,s.jsx)(n.code,{children:"dune-copasi"})," is using ",(0,s.jsx)(n.a,{href:"https://github.com/gulrak/filesystem",children:(0,s.jsx)(n.code,{children:"ghc::filesystem"})})]})]})]})]})]})}function h(e={}){const{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,n,i)=>{i.d(n,{R:()=>d,x:()=>r});var s=i(6540);const t={},o=s.createContext(t);function d(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:d(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.